050_list.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. # generate assert test for list
  2. assert [1, 2, 3] == [1, 2, 3]
  3. assert [1, 2, 3] != [1, 2, 4]
  4. # test + *=
  5. assert [1, 2, 3] + [4, 5, 6] == [1, 2, 3, 4, 5, 6]
  6. assert [1, 2, 3] * 3 == [1, 2, 3, 1, 2, 3, 1, 2, 3]
  7. l = [1,2,3,4]
  8. assert l[2] == 3
  9. assert l[-1] == 4
  10. assert l[:32] == [1,2,3,4]
  11. assert l[32:] == []
  12. assert l[1:4] == [2,3,4]
  13. assert l[-1:-3] == []
  14. assert l[-3:-1] == [2,3]
  15. l1 = [1];l2 = l1;l1.append(2);l3 = [1,1,2]
  16. assert l2[1] == 2
  17. assert l1 == l2
  18. assert l1*3 == [1,2,1,2,1,2]
  19. assert 2*l1 == [1,2,1,2]
  20. assert l3.count(1) == 2
  21. member = ['Tom', 'Sunny', 'Honer', 'Lily']
  22. teacher = [1,2,3]
  23. assert len(member + teacher) == 7
  24. assert member[0] == 'Tom'
  25. assert member[-2] == 'Honer'
  26. assert member[0:3] == ['Tom', 'Sunny', 'Honer']
  27. member.remove('Sunny')
  28. assert member == ['Tom', 'Honer', 'Lily']
  29. member.pop()
  30. assert member == ['Tom', 'Honer']
  31. del member[0]
  32. assert member == ['Honer']
  33. member.append('Jack')
  34. assert member == ['Honer','Jack']
  35. member.extend(teacher)
  36. assert member == ['Honer','Jack',1,2,3]
  37. member.insert(1,'Tom')
  38. assert member == ['Honer','Tom','Jack',1,2,3]
  39. member.clear()
  40. assert member == []
  41. member = teacher.copy()
  42. assert member == [1,2,3]
  43. l = []
  44. l.insert(0, 'l')
  45. l.insert(1, 'l')
  46. l.insert(0, 'h')
  47. l.insert(3, 'o')
  48. l.insert(1, 'e')
  49. assert l == ['h', 'e', 'l', 'l', 'o']
  50. assert l[-2] == 'l'
  51. b = [1, 2, 3]
  52. assert b[
  53. 1
  54. ] == 2
  55. assert b[0
  56. ] == 1
  57. assert b[0] == 1
  58. assert b[
  59. 0] == 1
  60. a = [1, 2, 3]
  61. assert a.index(2) == 1
  62. assert a.index(1) == 0
  63. assert a.index(3) == 2
  64. assert a.index(2, 1) == 1
  65. assert a.index(1, 0) == 0
  66. assert a.index(2, -2) == 1
  67. a, b = [1, 2]
  68. assert a == 1 and b == 2
  69. assert [1, 2].__getitem__(0) == 1
  70. assert list(range(1, 5)) == [1, 2, 3, 4]
  71. assert list(range(1, 5, 2)) == [1, 3]
  72. assert list(range(5, 1, -1)) == [5, 4, 3, 2]
  73. assert list(range(5, 1, -2)) == [5, 3]
  74. # test sort
  75. a = [8, 2, 4, 2, 9]
  76. assert a.sort() == None
  77. assert (a == [2, 2, 4, 8, 9]), a
  78. a = []
  79. assert a.sort() == None
  80. assert a == []
  81. a = [0, 0, 0, 0, 1, 1, 3, -1]
  82. assert a.sort() == None
  83. assert a == [-1, 0, 0, 0, 0, 1, 1, 3]
  84. a = [3, 2, 2, 1]
  85. a.sort()
  86. assert a == [1, 2, 2, 3]
  87. # test reverse
  88. a = [3, 2, 2, 1]
  89. a.sort(reverse=True)
  90. assert a == [3, 2, 2, 1]
  91. a = [1, 3, 2, 2]
  92. a.sort(reverse=True)
  93. assert a == [3, 2, 2, 1]
  94. # test key
  95. key = lambda x: -x
  96. assert key(1) == -1
  97. a = [1, 3, 2, 2]
  98. a.sort(key=key)
  99. assert a == [3, 2, 2, 1]
  100. a = [1, 3, 2, 2]
  101. a.sort(key=key, reverse=True)
  102. assert a == [1, 2, 2, 3]
  103. # test sorted
  104. a = [8, 2, 4, 2, 9]
  105. assert sorted(a) == [2, 2, 4, 8, 9]
  106. assert sorted(a, reverse=True) == [9, 8, 4, 2, 2]
  107. def key(x): return -x;
  108. assert sorted(a, key=key) == [9, 8, 4, 2, 2]
  109. assert sorted(a, key=key, reverse=True) == [2, 2, 4, 8, 9]
  110. assert a == [8, 2, 4, 2, 9]
  111. # test unpack ex
  112. a, *b = [1,2,3,4]
  113. assert a == 1
  114. assert b == [2,3,4]
  115. a, b, *c = [1, 2]
  116. assert a == 1
  117. assert b == 2
  118. assert c == []
  119. a, b, c, *d = [1, 2, 3, 4, 5]
  120. assert d == [4, 5]
  121. # test repr
  122. assert repr([1, 2, 3]) == "[1, 2, 3]"
  123. assert repr([1, [2, 3], 4]) == "[1, [2, 3], 4]"
  124. assert repr([1, [2, [3, 4]], 5]) == "[1, [2, [3, 4]], 5]"
  125. assert repr([]) == "[]"
  126. # test in and not in
  127. assert 1 in [1, 2, 3]
  128. assert 4 not in [1, 2, 3]
  129. b = [(1, 2), (3, 3), (5, 1)]
  130. b.sort(key=lambda x:x[1])
  131. assert b == [(5, 1), (1, 2), (3,3)]
  132. # test del slice
  133. a = [1, 2, 3, 4]
  134. b = a.copy(); del b[:2]; assert b == [3, 4]
  135. b = a.copy(); del b[1:3]; assert b == [1, 4]
  136. b = a.copy(); del b[2:]; assert b == [1, 2]
  137. b = a.copy(); del b[:-1]; assert b == [4]
  138. b = a.copy(); del b[-1:]; assert b == [1, 2, 3]
  139. b = a.copy(); del b[:]; assert b == []
  140. assert a == [1, 2, 3, 4]
  141. # test extend with iterable
  142. c = [1]
  143. c.extend('123')
  144. assert c == [1, '1', '2', '3']
  145. c.extend(range(1, 6))
  146. assert c == [1, '1', '2', '3', 1, 2, 3, 4, 5]
  147. # test cyclic reference
  148. # a = []
  149. # a.append(0)
  150. # a.append([1, 2, a])
  151. # assert repr(a) == "[0, [1, 2, [...]]]"
  152. # unpacking builder (not supported)
  153. # a = [1, 2, 3]
  154. # b = [*a, 4, 5]
  155. # assert b == [1, 2, 3, 4, 5]
  156. # a = []
  157. # b = [*a, 1, 2, 3, *a, *a]
  158. # assert b == [1, 2, 3]