05_list.py 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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 l3.count(1) == 2
  20. member = ['Tom', 'Sunny', 'Honer', 'Lily']
  21. teacher = [1,2,3]
  22. assert len(member + teacher) == 7
  23. assert member[0] == 'Tom'
  24. assert member[-2] == 'Honer'
  25. assert member[0:3] == ['Tom', 'Sunny', 'Honer']
  26. member.remove('Sunny')
  27. assert member == ['Tom', 'Honer', 'Lily']
  28. member.pop()
  29. assert member == ['Tom', 'Honer']
  30. del member[0]
  31. assert member == ['Honer']
  32. member.append('Jack')
  33. assert member == ['Honer','Jack']
  34. member.extend(teacher)
  35. assert member == ['Honer','Jack',1,2,3]
  36. member.insert(1,'Tom')
  37. assert member == ['Honer','Tom','Jack',1,2,3]
  38. member.clear()
  39. assert member == []
  40. member = teacher.copy()
  41. assert member == [1,2,3]
  42. l = []
  43. l.insert(0, 'l')
  44. l.insert(1, 'l')
  45. l.insert(0, 'h')
  46. l.insert(3, 'o')
  47. l.insert(1, 'e')
  48. assert l == ['h', 'e', 'l', 'l', 'o']
  49. assert l[-2] == 'l'
  50. # test sort
  51. a = [8, 2, 4, 2, 9]
  52. assert sorted(a) == [2, 2, 4, 8, 9]
  53. assert sorted(a, reverse=True) == [9, 8, 4, 2, 2]
  54. assert sorted(a, key=lambda x:-x, reverse=True) == [2, 2, 4, 8, 9]
  55. assert a == [8, 2, 4, 2, 9]
  56. b = [(1, 2), (3, 3), (5, 1)]
  57. b.sort(key=lambda x:x[1])
  58. assert b == [(5, 1), (1, 2), (3,3)]
  59. # unpacking builder
  60. a = [1, 2, 3]
  61. b = [*a, 4, 5]
  62. assert b == [1, 2, 3, 4, 5]
  63. a = []
  64. b = [*a, 1, 2, 3, *a, *a]
  65. assert b == [1, 2, 3]
  66. assert b[
  67. 1
  68. ] == 2
  69. assert b[0
  70. ] == 1
  71. assert b[0] == 1
  72. assert b[
  73. 0] == 1
  74. a = []
  75. a.append(0)
  76. a.append([1, 2, a])
  77. assert repr(a) == "[0, [1, 2, [...]]]"
  78. a = [1, 2, 3]
  79. assert a.index(2) == 1
  80. assert a.index(1) == 0
  81. assert a.index(3) == 2
  82. assert a.index(2, 1) == 1
  83. assert a.index(1, 0) == 0
  84. a, b = [1, 2]
  85. assert a == 1 and b == 2
  86. assert [1, 2].__getitem__(0) == 1
  87. assert list(range(1, 5)) == [1, 2, 3, 4]
  88. assert list(range(1, 5, 2)) == [1, 3]
  89. assert list(range(5, 1, -1)) == [5, 4, 3, 2]
  90. assert list(range(5, 1, -2)) == [5, 3]
  91. # try:
  92. # a.index(1, 1)
  93. # exit(1)
  94. # except ValueError:
  95. # pass
  96. # slice extras
  97. # class A:
  98. # def __getitem__(self, index):
  99. # return index
  100. # assert A()[1:2, 3] == (slice(1, 2, None), 3)
  101. # assert A()[1:2, 3:4] == (slice(1, 2, None), slice(3, 4, None))
  102. # assert A()[1:2, 3:4, 5] == (slice(1, 2, None), slice(3, 4, None), 5)
  103. # assert A()[:, :] == (slice(None, None, None), slice(None, None, None))
  104. # assert A()[::, :] == (slice(None, None, None), slice(None, None, None))
  105. # assert A()[::, :2] == (slice(None, None, None), slice(None, 2, None))
  106. # assert A()['b':'c':1, :] == (slice('b', 'c', 1), slice(None, None, None))
  107. # assert A()[1:2, :A()[3:4, ::-1]] == (slice(1, 2, None), slice(None, (slice(3, 4, None), slice(None, None, -1)), None))