08_dict.py 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. emptyDict = dict()
  2. assert len(emptyDict) == 0
  3. tinydict = {'Name': 'Tom', 'Age': 7, 'Class': 'First'}
  4. assert tinydict['Name'] == 'Tom';assert tinydict['Age'] == 7
  5. tinydict['Age'] = 8;tinydict['School'] = "aaa"
  6. assert tinydict['Age'] == 8;assert tinydict['School'] == "aaa"
  7. del tinydict['Name']
  8. assert repr(tinydict) == "{'Age': 8, 'Class': 'First', 'School': 'aaa'}"
  9. assert len(tinydict) == 3
  10. tinydict.clear()
  11. assert len(tinydict) == 0
  12. dict1 = {'user':'circle','num':[1,2,3]}
  13. dict2 = dict1.copy()
  14. for k,v in dict1.items():
  15. assert dict2[k] == v
  16. for t in dict1.items():
  17. assert t == ('user', 'circle') or t == ('num', [1, 2, 3])
  18. tinydict = {'Name': 'circle', 'Age': 7}
  19. tinydict2 = {'Sex': 'female' }
  20. assert len(tinydict) == 2
  21. assert len(tinydict2) == 1
  22. tinydict.update(tinydict2)
  23. updated_dict = {'Name': 'circle', 'Age': 7, 'Sex': 'female'}
  24. for k,v in tinydict.items():
  25. assert updated_dict[k] == v
  26. assert len(tinydict) == 3
  27. assert tinydict == updated_dict
  28. dishes = {'eggs': 2, 'sausage': 1, 'bacon': 1, 'spam': 500}
  29. # dict is now ordered
  30. assert list(dishes.keys()) == ['eggs', 'sausage', 'bacon', 'spam']
  31. assert list(dishes.values()) == [2, 1, 1, 500]
  32. d={1:"a",2:"b",3:"c"}
  33. result=[]
  34. for k,v in d.items():
  35. result.append(k)
  36. result.append(v)
  37. assert len(result) == 6
  38. del d[2]
  39. assert len(d) == 2
  40. assert list(d.keys()) == [1, 3]
  41. assert list(d.values()) == ['a', 'c']
  42. del d[1]
  43. del d[3]
  44. assert len(d) == 0
  45. # test __eq__
  46. d1 = {1:2, 3:4}
  47. d2 = {3:4, 1:2}
  48. d3 = {1:2, 3:4, 5:6}
  49. assert d1 == d2
  50. assert d1 != d3
  51. a = dict([(1, 2), (3, 4)])
  52. assert a == {1: 2, 3: 4}
  53. assert a.pop(1) == 2
  54. assert a == {3: 4}
  55. assert a.pop(3) == 4
  56. assert a == {}
  57. a = {}
  58. for i in range(1000):
  59. a[i] = i
  60. assert len(a) == 1000
  61. for i in range(1000):
  62. del a[i]
  63. assert len(a) == 0
  64. a = {'g': 0}
  65. a['ball_3'] = 0
  66. a['ball_4'] = 0
  67. assert list(a.keys()) == ['g', 'ball_3', 'ball_4']
  68. del a['ball_3']
  69. assert list(a.keys()) == ['g', 'ball_4']
  70. del a['ball_4']
  71. assert list(a.keys()) == ['g',]
  72. del a['g']
  73. assert len(a) == 0
  74. # ultra test!!
  75. a = {'0': 0, '1': 1}
  76. for i in range(2, 1000):
  77. a[str(i)] = i
  78. del a[str(i - 2)]
  79. assert a[str(i - 1)] == i - 1
  80. a = {'0': 0, '1': 1}
  81. b = ['0', '1']
  82. # dict delete test
  83. data = []
  84. j = 6
  85. for i in range(65535):
  86. j = ((j*5+1) % 65535)
  87. data.append(str(j))
  88. for i in range(len(data)):
  89. z = data[i]
  90. a[z] = i
  91. b.append(z)
  92. if i % 3 == 0:
  93. y = b.pop()
  94. del a[y]
  95. a = {1: 2, 3: 4}
  96. assert a.pop(1) == 2
  97. assert a.pop(1, None) is None
  98. n = 2 ** 17
  99. a = {}
  100. for i in range(n):
  101. a[str(i)] = i
  102. for i in range(n):
  103. y = a[str(i)]
  104. for i in range(n):
  105. del a[str(i)]
  106. # namedict delete test
  107. # class A: pass
  108. # a = A()
  109. # b = ['0', '1']
  110. # for i in range(len(data)):
  111. # z = data[i]
  112. # setattr(a, str(z), i)
  113. # b.append(z)
  114. # if i % 3 == 0:
  115. # y = b.pop()
  116. # delattr(a, y)
  117. d = {}
  118. for i in range(-1000, 1000):
  119. d[i] = i
  120. assert d[i] == i
  121. e = {}
  122. for i in range(-10000, 10000, 3):
  123. e[i] = i
  124. assert e[i] == i
  125. # test iter
  126. d = {'1': 1, 222: 2, '333': 3}
  127. assert list(d) == ['1', 222, '333']
  128. assert list(d.keys()) == ['1', 222, '333']
  129. assert list(d.values()) == [1, 2, 3]
  130. assert list(d.items()) == [('1', 1), (222, 2), ('333', 3)]