05_list.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  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. a, b = [1, 2]
  67. assert a == 1 and b == 2
  68. assert [1, 2].__getitem__(0) == 1
  69. assert list(range(1, 5)) == [1, 2, 3, 4]
  70. assert list(range(1, 5, 2)) == [1, 3]
  71. assert list(range(5, 1, -1)) == [5, 4, 3, 2]
  72. assert list(range(5, 1, -2)) == [5, 3]
  73. # test sort
  74. a = [8, 2, 4, 2, 9]
  75. assert a.sort() == None
  76. assert (a == [2, 2, 4, 8, 9]), a
  77. a = []
  78. assert a.sort() == None
  79. assert a == []
  80. a = [0, 0, 0, 0, 1, 1, 3, -1]
  81. assert a.sort() == None
  82. assert a == [-1, 0, 0, 0, 0, 1, 1, 3]
  83. a = [3, 2, 2, 1]
  84. a.sort()
  85. assert a == [1, 2, 2, 3]
  86. # test reverse
  87. a = [3, 2, 2, 1]
  88. a.sort(reverse=True)
  89. assert a == [3, 2, 2, 1]
  90. a = [1, 3, 2, 2]
  91. a.sort(reverse=True)
  92. assert a == [3, 2, 2, 1]
  93. # test key
  94. key = lambda x: -x
  95. assert key(1) == -1
  96. a = [1, 3, 2, 2]
  97. a.sort(key=key)
  98. assert a == [3, 2, 2, 1]
  99. a = [1, 3, 2, 2]
  100. a.sort(key=key, reverse=True)
  101. assert a == [1, 2, 2, 3]
  102. # test sorted
  103. a = [8, 2, 4, 2, 9]
  104. assert sorted(a) == [2, 2, 4, 8, 9]
  105. assert sorted(a, reverse=True) == [9, 8, 4, 2, 2]
  106. def key(x): return -x;
  107. assert sorted(a, key=key) == [9, 8, 4, 2, 2]
  108. assert sorted(a, key=key, reverse=True) == [2, 2, 4, 8, 9]
  109. assert a == [8, 2, 4, 2, 9]
  110. # test unpack ex
  111. a, *b = [1,2,3,4]
  112. assert a == 1
  113. assert b == [2,3,4]
  114. a, b, *c = [1, 2]
  115. assert a == 1
  116. assert b == 2
  117. assert c == []
  118. a, b, c, *d = [1, 2, 3, 4, 5]
  119. assert d == [4, 5]
  120. # test repr
  121. assert repr([1, 2, 3]) == "[1, 2, 3]"
  122. assert repr([1, [2, 3], 4]) == "[1, [2, 3], 4]"
  123. assert repr([1, [2, [3, 4]], 5]) == "[1, [2, [3, 4]], 5]"
  124. assert repr([]) == "[]"
  125. # test in and not in
  126. assert 1 in [1, 2, 3]
  127. assert 4 not in [1, 2, 3]
  128. b = [(1, 2), (3, 3), (5, 1)]
  129. b.sort(key=lambda x:x[1])
  130. assert b == [(5, 1), (1, 2), (3,3)]
  131. # test cyclic reference
  132. # a = []
  133. # a.append(0)
  134. # a.append([1, 2, a])
  135. # assert repr(a) == "[0, [1, 2, [...]]]"
  136. # unpacking builder (not supported)
  137. # a = [1, 2, 3]
  138. # b = [*a, 4, 5]
  139. # assert b == [1, 2, 3, 4, 5]
  140. # a = []
  141. # b = [*a, 1, 2, 3, *a, *a]
  142. # assert b == [1, 2, 3]