05_list.py 3.0 KB

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