DEV Community

Super Kai (Kazuya Ito)
Super Kai (Kazuya Ito)

Posted on

List in Python (4)

Buy Me a Coffee

*Memo:

  • My post explains a list and the list with indexing.
  • My post explains list functions (1).
  • My post explains list functions (2).

A list can be changed by slicing as shown below:

*Memo:

  • Slicing can be done with one or more [start:end:step]:
    • start(Optional-Default:The index of the 1st element):
      • It's a start index(inclusive).
    • end(Optional-Default:The index of the last element + 1):
      • It's an end index(exclusive).
    • step(Optional-Default:1):
      • It's the interval of indices.
      • It cannot be zero.
    • The [] with at least one : is slicing.
  • An iterable must be assigned to a sliced variable.
  • A del statement can remove zero or more elements from a list by slicing and can remove one or more variables themselves.

<1D list>:

v1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

v2 = v1[:]

v2[2:6] = [0, 1, 2, 3, 4, 5]
# v2[-6:-2] = [0, 1, 2, 3, 4, 5]

print(v2)
# ['A', 'B', 0, 1, 2, 3, 4, 5, 'G', 'H']

v2 = v1[:]

v2[2:6] = [[0, 1, 2, 3, 4, 5]]
# v2[-6:-2] = [[0, 1, 2, 3, 4, 5]]

print(v2)
# ['A', 'B', [0, 1, 2, 3, 4, 5], 'G', 'H']

v2 = v1[:]

v2[2:6:2] = [0, 1]
# v2[-6:-2:2] = [0, 1]

print(v2)
# ['A', 'B', 0, 'D', 1, 'F', 'G', 'H']

v2 = v1[:]

v2[2:6:2] = [[0, 1, 2], [3, 4, 5]]
# v2[-6:-2:2] = [[0, 1, 2], [3, 4, 5]]

print(v2)
# ['A', 'B', [0, 1, 2], 'D', [3, 4, 5], 'F', 'G', 'H']

v2 = v1[:]

v2[2:2] = []
# v2[-6:-6] = []

print(v2)
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

v2 = v1[:]

v2[2:6] = 0
# TypeError: must assign iterable to extended slice
Enter fullscreen mode Exit fullscreen mode
v1 = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

v2 = v1[:]

del v2[2:6]
# del v2[-6:-2]

print(v2)
# ['A', 'B', 'G', 'H']

v2 = v1[:]

del v2[2:6:2]
# del v2[-6:-2:2]

print(v2)
# ['A', 'B', 'D', 'F', 'G', 'H']

v2 = v1[:]

del v2[2:2]
# del v2[-6:-6]

print(v1)
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

del v1, v2

print(v1)
# NameError: name 'v1' is not defined

print(v2)
# NameError: name 'v2' is not defined
Enter fullscreen mode Exit fullscreen mode

<2D list>:

v = [['A', 'B', 'C', 'D'], ['E', 'F', 'G', 'H']]

v[0][1:3] = [0, 1, 2, 3]
# v[-2][-3:-1] = [0, 1, 2, 3]

print(v)
# [['A', 0, 1, 2, 3, 'D'], ['E', 'F', 'G', 'H']]

v[1][::2] = [0, 1]
# v[-1][::2] = [0, 1]

print(v)
# [['A', 0, 1, 2, 3, 'D'], [0, 'F', 1, 'H']]

v[0][1::3] = [[0, 1, 2, 3], [0, 1, 2, 3]]
# v[-2][-5::3] = [[0, 1, 2, 3], [0, 1, 2, 3]]

print(v)
# [['A', [0, 1, 2, 3], 1, 2, [0, 1, 2, 3], 'D'], [0, 'F', 1, 'H']]

v[1][1:3] = [[0, 1, 2, 3]]
# v[-1][-3:-1] = [[0, 1, 2, 3]]

print(v)
# [['A', [0, 1, 2, 3], 1, 2, [0, 1, 2, 3], 'D'], [0, [0, 1, 2, 3], 'H']]

del v[0][:3], v[1][::2]
# del v[-2][:-3], v[-1][::2]

print(v)
# [[2, [0, 1, 2, 3], 'D'], [[0, 1, 2, 3]]]
Enter fullscreen mode Exit fullscreen mode

<3D list>:

v = [[['A', 'B'], ['C', 'D']], [['E', 'F'], ['G', 'H']]]

v[0][1:] = [0, 1, 2, 3]
# v[-2][-1:] = [0, 1, 2, 3]

print(v)
# [[['A', 'B'], 0, 1, 2, 3], [['E', 'F'], ['G', 'H']]]

v[1][0][0:] = [0, 1, 2, 3]
# v[-1][-2][-2:] = [0, 1, 2, 3]

print(v)
# [[['A', 'B'], 0, 1, 2, 3], [[0, 1, 2, 3], ['G', 'H']]]

v[1][1][::2] = [[0, 1, 2, 3]]
# v[-1][-1][::2] = [[0, 1, 2, 3]]

print(v)
# [[['A', 'B'], 0, 1, 2, 3], [[0, 1, 2, 3], [[0, 1, 2, 3], 'H']]]

del v[0][1:], v[1][0][0:], v[1][1][::2]
# del v[-2][-4:], v[-1][-2][-4:], v[-1][-1][::2]

print(v)
# [[['A', 'B']], [[], ['H']]]
Enter fullscreen mode Exit fullscreen mode

Top comments (0)