Python中的list,跟c++中的vertor有些类似,支持随机访问,可以动态增加或者删除数据,但是list要比vector更加灵活,可以存放任意类型的元素,包括嵌套list。
1. list的创建: 使用[]表示,元素之间用括号分割。
list1 = ['a', 'b', 'c']
2. 访问list中的元素:
#通过下标遍历list
for i in range(len(list1)):
print list1[i]
#通过for迭代list
for v in list1:
print(v)
list中的元素,直接通过下标访问,跟c语言的数组很像,下标也是从0开始。
#修改list中的元素
list1[0] = 'ab'
print(list1)
>>> ['ab', 'b', 'c']
删除list中的某个元素:
del list1[1]
print(list1)
>>> ['ab', 'c']
list是可以动态的增加与删除元素的,增加就不像删除这么简单了,如:
#像list尾部插入一个元素
list1[len(list1)] = 'd'
Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
list1[len(list1)] = 'd'
IndexError: list assignment index out of range
说明插入一个元素不能够直接操作,要通过insert或者是append方法来完成:
#从尾部插入
list1.append('d')
print(list1)
>>> ['ab', 'c', 'd']
#在指定位置插入
list1.insert(1, 'e')
print(list1)
>>> ['ab', 'e', 'c', 'd']
list1.insert(100, 'x')
print(list1)
>>> ['ab', 'e', 'c', 'd', 'x']
从上面的结果来看,insert方法在指定位置插入时,如果指定位置已经有元素了,那么会将此元素及其后面的元素进行移动。如果指定的位置超出了末尾的位置,则会将元素插入到尾部。
3. 截取list中的部分元素: 这个与tuple一样, [left : right, step], 左边闭合,右边开放
print(list1[1:3])
>>> ['e', 'c']
print(list1[1:-1])
>>> ['e', 'c', 'd']
4. list中其他常用的方法:
1)reverse() : 反转list
list1.reverse()
print(list1)
>>> ['x', 'd', 'c', 'e', 'ab']
2)remove(value) : 移除list中第一个值匹配value的元素
list1.remove('ab')
print(list1)
>>> ['x', 'd', 'c', 'e']
3) pop() : 移除list中最后一个元素,并将其返回
printf(list1.pop())
>>> 'e'
print(list1)
>>> ['x', 'd', 'c']
4) count(value) : 通过list中值等于value的元素个数
list1.count('a')
>>> 0
list1.count('x')
>>> 1
5) sort(func) : 对list的元素进行排序
list1.sort()
print(list1)
>>> ['c', 'd', 'x']
6)index(value) : 查找第一个匹配value的元素,返回其索引值
list1.index('d')
>>> 1
如果只是简单的判断某个元素是否存在于list中,可以直接使用in进行判断
if 'd' in list1:
print('d is in list1')
else:
print('d is not in list1')
>>> d is in list1