列表操作符
列表可以使用 比较运算符,但比较运算符对数据通用,单独用一个知识点讲解。该知识点介绍有列表自己特性的操作符 +
和 *
。
操作符 +
操作符 +
,可以让两个列表元素顺序不变地合并到一个新的列表中:
list_1 = [1,2]
list_2 = [3,4]
list_1 + list_2, list_2 + list_1
([1, 2, 3, 4], [3, 4, 1, 2])
操作符 +
还可以与赋值操作符 =
连用,将一个列表中的元素,加到另一个列表中(相当于 list.extend()),而不创建一个新列表:
list_1 = [1,2]
list_2 = [3,4]
print(id(list_1))
list_1 += list_2
id(list_1), list_1
2893532728008
(2893532728008, [1, 2, 3, 4])
操作符 *
操作符 *
,可以将列表中的元素重复 n 次,得到一个新列表:
list_1 = [1,2]
list_2 = list_1*2
print(id(list_1),id(list_2))
list_2
2893532600136 2893532727432
[1, 2, 1, 2]
**注意:**如果列表中有可变对象,重复 n 次后,可变对象是同一个对象的多次引用,改变一个,都会跟着改变。
list_1 = [[0]]
list_2 = list_1*3
print(list_2)
list_1[0][0] = 1
list_2
[[0], [0], [0]]
[[1], [1], [1]]
操作符 *
,还可以与赋值操作符 =
连用,用一个列表的元素重复 n 次来扩充它自身,而不创建新列表:
_list = [1,2]
print(id(_list))
_list *= 2
id(_list), _list
2893532727624
(2893532727624, [1, 2, 1, 2])
当 n 小于 1 时,则得到空列表:
[1,2,3]*0
[]
列表是可迭代对象,*
可以将列表拆包:
print(*[1,2,3])
1 2 3