四、列表
python列表和C语言的数组差不多,但其元素可以是不同数据类型。
- 列表操作
- 创建列表
e.g.
list1 = [1, '1', "python", [1, 2]]
list1 = list()#list函数可以创建空列表
- 添加元素
append方法:只能添加单个元素
extend方法:可以添加多个元素,本质为对列表的扩展
insert方法:插入元素
...
e.g.
num = [1, 2]
num.append(3)
print(num) # The result is :[1, 2, 3]
num = [1, 2]
num.extend([3, 4])
print(num)# The result is :[1, 2, 3, 4]
num = [1, 2,3,4]
num.insert(1, 5) # list.insert(位置(之前), 元素)
print(num) # The result is :[1, 5, 2, 3, 4]
num.insert(-1, 6)
print(num) # The result is :[1, 5, 2, 3, 6, 4]
- 获取元素
索引访问:list[元素索引]
random.choice方法:从一个非空的序列中随机获取一个元素
...
e.g.
num = [0, 1, 2, 3]
print(num[2]) # The result is : 2
print(num[-1]) # The result is : 3
import random
num = [0, 1, 2, 3]
print(random.choice(num)) # The result is any element of the list "num"
- 删除元素
remove方法:删除指定元素,若是不存在的元素则报错
pop方法:“弹”出指定索引的元素,返回“弹”出的元素
del语句:即可删除元素,也可删除整个列表
...
e.g.
num = ['a', 'b', 'c']
num.remove('b')
print(num)# The result is :['a', 'c']
num = ['a', 'b', 'c']
print(num.pop(1) )# The result is :'b'
print(num)# The result is :['a', 'c']
num = ['a', 'b', 'c']
del num
# The result is showing NameError: name 'num' is not defined
- 列表切片(slice)
列表的切片操作主要用于对多个连续元素的访问。
such as:
>>> list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> print(list1[2:5])
['c', 'd', 'e']
>>> print(list1[2:])
['c', 'd', 'e', 'f', 'g']
>>> print(list1[:5])
['a', 'b', 'c', 'd', 'e']
>>> print(list1[:])
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> print(list1[-3:])
['e', 'f', 'g']
>>> print(list1[0:6:2])
['a', 'c', 'e']
>>> print(list1[::-1]) # reverse
['g', 'f', 'e', 'd', 'c', 'b', 'a']
>>> list1
['a', 'b', 'c', 'd', 'e', 'f', 'g']
总结为:
list[起始索引, 结束索引(不包含), 步长]
PS:列表切片只返回拷贝而不改变自身数据组成结构,但del语句和切片后的列表赋值例外。如下所示:
>>> del list1[-3:]
>>> list1
['a', 'b', 'c', 'd']
>>> list1[:2] = ['h', 'i']
>>> list1
['h', 'i', 'c', 'd']
原因是执行删除和更改操作本身就是要对原列表进行操作,否则就失去了意义。
3. 列表“邂逅”操作符
- 比较操作符:返回布尔值
>>> list1 = [123]
>>> list2 = [456]
>>> list1>list2
False
>>> list1 = ["abc"]
>>> list2 = ["bac"]# 比较第一个字符的ASCII码
>>> list1<list2
True
>>> list1 = [123, 456]# 比较第一个元素
>>> list2 = [456, 100]
>>> list1>list2
False
- 算术操作符
'+'表拼接,‘*’表重复
>>> list1 = ["ba"]
>>> list2 = ["ab"]
>>> list3 = list1 + list2 # 更加推荐用extend方法进行列表拓展,另外,‘+’不可添加单个元素
>>> list3
['ba', 'ab']
>>> list4 = list1 * 3
>>> list4
['ba', 'ba', 'ba']
- 成员操作符
>>> list1 = ['a', 'b', ['c', 'd']]
>>> 'a' in list1
True
>>> 'b' not in list1
False
>>> 'c' in list1
False
>>> ['c', 'd'] in list1
True
PS:in和not in有时候可以巧妙地用于删除列表中的重复元素
4. 列表方法
dir(list)可查看全部的列表方法
格式处理后为:
__add__ __class__ __contains__ __delattr__ __delitem__ __dir__ __doc__ __eq__
__format__ __ge__ __getattribute__ __getitem__ __gt__ __hash__ __iadd__ __imul__
__init__ __init_subclass__ __iter__ __le__ __len__ __lt__ __mul__ __ne__
__new__ __reduce__ __reduce_ex__ __repr__ __reversed__ __rmul__ __setattr__ _setitem__
__sizeof__ __str__ __subclasshook__
append clear copy count extend
index insert pop remove reverse sort
后面几个方法之前基本都有涉及,按单词字面意思便知其功能。

浙公网安备 33010602011771号