5.2 列表定义和使用
5.2.1 列表定义
列表由一系列按特定顺序排列的元素组成。列表中的元素可以是不同类型的。列表使用[ ]括起所有元素,元素用逗号分隔开。
例如:
testList = [1, 'a']
5.2.2 遍历
对列表或其它复合数据类型中,把所有元素挨个进行操作,称之为遍历。可以使用循环对列表进行遍历:5.4-列表遍历.py
# 使用循环进行列表的遍历
mylist = ['abcd', 'zhangsan', 'jiangning']
# 使用for循环实现
for tempstr in mylist:
print(tempstr)
# 使用while循环实现
i = 0
length = len(mylist)
while i < length:
print(mylist[i])
i += 1
结果为:
abcd
zhangsan
jiangning
abcd
zhangsan
jiangning
5.2.3 查找
不论是对列表的插入还是删除操作,或者是单纯的查找,都需要判定某个元素在列表中是否存在,Python使用in和index实现查找。使用count实现计数。例如:5.5-列表查找.py
# in, not in
mylist = ['abcd', 'zhangsan', 'jiangning']
if 'zhang' in mylist:
print('存在')
else:
print('不存在')
# index
mylist = ['a', 'b', 'c', 'a', 'b']
print(mylist.index('a', 0, 4))
# count
print(mylist.count('a'))
结果为:
不存在
0
2
5.2.4 添加/插入/修改
对列表可以添加元素,可以使用append,extend在列表的结尾处添加元素,也可以使用insert在列表中插入元素。例如:5.6-列表插入操作.py
# 添加操作
# append 添加,把添加内容直接作为元素添加
# 对列表操作,列表的内容会发生改变
mylist = ['abcd', 'zhangsan', 'jiangning']
print(mylist)
mylist.append('defg')
print(mylist)
# extend 添加,把列表拆成元素添加
# append 添加
mylist = ['abcd', 'zhangsan', 'jiangning']
appendlist = ['aaa', 'bbb']
mylist.append(appendlist)
print('append:')
print(mylist)
# extend
mylist = ['abcd', 'zhangsan', 'jiangning']
extendlist = ['aaa', 'bbb']
mylist.extend(extendlist)
print('extend:')
print(mylist)
# insert 在index位置前插入元素
print('insert:')
mylist = ['abcd', 'zhangsan', 'jiangning']
print(mylist)
mylist.insert(1, 'defg')
print(mylist)
# insert 对于列表的插入,等同于append做法
mylist = ['abcd', 'zhangsan', 'jiangning']
print(mylist)
mylist.insert(1, appendlist)
print(mylist)
# 对列表元素进行修改,使用索引定位到元素,直接赋值修改
mylist[1] = 'lisi'
print(mylist)
结果为:
['abcd', 'zhangsan', 'jiangning']
['abcd', 'zhangsan', 'jiangning', 'defg']
append:
['abcd', 'zhangsan', 'jiangning', ['aaa', 'bbb']]
extend:
['abcd', 'zhangsan', 'jiangning', 'aaa', 'bbb']
insert:
['abcd', 'zhangsan', 'jiangning']
['abcd', 'defg', 'zhangsan', 'jiangning']
['abcd', 'zhangsan', 'jiangning']
['abcd', ['aaa', 'bbb'], 'zhangsan', 'jiangning']
['abcd', 'lisi', 'zhangsan', 'jiangning']
5.2.5 删除
列表的删除操作有这几种:删除某一个元素,删除最后一个元素和删除某一个指定值的元素。例如:5.7-列表删除.py
# 删除:del, pop, remove
# del 删除给定下标的元素
print('del:')
mylist = ['a', 'b', 'c', 'a', 'b']
print(mylist)
del(mylist[1])
print(mylist)
# pop 删除最后一个或指定索引的元素
print('pop:')
mylist.pop()
print(mylist)
# remove 删除指定值的元素
# 一次只删除一个
print('remove:')
mylist.remove('a')
print(mylist)
mylist.remove('a')
print(mylist)
结果为:
del:
['a', 'b', 'c', 'a', 'b']
['a', 'c', 'a', 'b']
pop:
['a', 'c', 'a']
remove:
['c', 'a']
['c']
5.2.6 排序
通常情况下,列表中的元素有确定的顺序时,便于各种使用,所以要对列表中的元素进行排序。Python提供排序函数对列表进行排序:5.8-列表排序.py
# sort, reverse
mylist = [6, 3, 8, 4, 2, 6, 4]
print(mylist)
# 默认为升序排列
mylist.sort()
print(mylist)
# 如果需要降序排列,需要指定reverse=True
mylist.sort(reverse=True)
print(mylist)
# 字符串排序,根据字符集的值排序,数字<大写字母<小写字母
mylist = ['abcd', 'zhangsan', 'jiangning', 'Hello', '1234', '+-*/']
print(mylist)
mylist.sort()
print(mylist)
结果为:
[6, 3, 8, 4, 2, 6, 4]
[2, 3, 4, 4, 6, 6, 8]
[8, 6, 6, 4, 4, 3, 2]
['abcd', 'zhangsan', 'jiangning', 'Hello', '1234', '+-*/']
['+-*/', '1234', 'Hello', 'abcd', 'jiangning', 'zhangsan']