*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
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
<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]]]
<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']]]
Top comments (0)