Python 中的列表(list
)是一种有序的集合,可以包含任意类型的元素,包括数字、字符串、甚至其他列表。列表是可变的,意味着可以修改其内容,如添加、删除或更改元素。它支持广泛的操作,如索引、切片、迭代等,以及内建方法,如排序、反转。列表在存储和处理序列数据时非常有用,是Python编程中非常灵活和强大的数据结构。
list列表的操作多种多样,序列有排序、反序;对列表集合的差集、并集、交集
多个列表合并、对列表进行末尾添加、指定位置添加、末尾追加、删除、修改等操作
只要把逗号分隔的不同的数据项使用方括号括起来即可。
如下所示:
list0 = [] # 空列表
list1 = ['phthon', 'java', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
函数 | 例子 | 输出 | 说明 |
---|---|---|---|
alist.append() | alist.append('app') |
alist = ['app'] |
列表末尾添加 |
alist.insert() | alist.insert( 3, 2) |
alist = ['app',2] |
列表指定位置添加 |
alist.insert() | alist.insert(3,3) |
alist = ['app', 2, 3] |
列表指定位置添加 |
alist.insert() | alist.insert(3,4) |
alist = ['app', 2, 3, 4] |
列表指定位置添加 |
alist.insert() | alist.insert(3,5) |
alist = ['app', 2, 3, 5, 4] |
列表指定位置添加 |
alist.extend() | alist.extend([99, '00']) |
alist = ['app', 2, 3, 5, 4,99, '00'] |
列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
pop_data=alist.pop() | pop_data=alist.pop() | alist = ['app', 2, 3, 5, 4,99] |
默认删除list中最后一个元素,pop_data='00' |
pop_data=alist.pop() | pop_data=alist.pop(1) | alist = ['app', 3, 5, 4, 99] |
删除第2个元素(0开头),pop_data=2 |
alist.remove() | alist.remove('app') |
alist = [3, 5, 4,99] |
删除1个list指定元素 |
n = len(alist) | n = len([1,2,3]) | n = 3 | 列表元素个数 |
lst2 = list(set()) | lst2 = list(set([2, 1, 3, 4, 1])) | lst2 = [1, 2, 3, 4] | 去重 |
m = max(alist) | m = max([1,2,3]) | m = 3 | 返回列表元素最大值 |
n = min(alist) | n = min([1,2,3]) | n = 1 | 返回列表元素最小值 |
l = list(seq) | l = list((1,2,3)) | l = [1, 2, 3] | 将元组转换为列表 |
count() 用于统计某个元素在列表中出现的次数。
alist = [123, 'xyz', 'zara', 'abc', 123]
print (alist.count(123))
以上实例输出结果如下:
>>>2
使用index()方法:用于从列表中找出某个值第一个匹配项的索引位置。
alist = [123, 'xyz', 'zara', 'abc', 123]
print (alist.index(123))
print (alist.index('xyz'))
以上实例输出结果如下:第0个、第1个
>>>0
>>>1
索引访问列表中的值
注:切片同样适用于字符串,字符串也有下标
使用方法 | 说明 |
---|---|
name[n:m] |
切片是不包含后面那个元素的值(顾头不顾尾) |
name[:m] |
如果切片前面一个值缺省的话,从开头开始取 |
name[n:] |
如果切片后面的值缺省的话,取到末尾 |
name[:] |
如果全部缺省,取全部 |
name[n:m:s] |
隔s个元素取一次; 步长是正数从左往右取; 步长是负数从右往左取 |
alist = [123, 'xyz', 'zara', 2018, 'only']
例子 | 输出结果 |
---|---|
alist[0] | 123 |
alist[-2] | 2018 |
alist[1:] | ['xyz', 'zara', 2018, 'only'] |
alist[:3] | [123, 'xyz', 'zara'] |
alist[1:3] | ['xyz', 'zara'] |
详细关于list、字符串、元组的切片还可以看自带方法 - data[ ] - 切片
sort() 用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
语法:list.sort(cmp=None, key=None, reverse=False)
参数 | 作用 |
---|---|
cmp | 可选参数, 如果指定了该参数会使用该参数的方法进行排序。 |
key | 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 |
reverse | 排序规则,reverse = True 降序, reverse = False 升序(默认)。 |
alist = [123, 'xyz', 'zara', 2018, 'only']
alist.sort() #降序
alist.sort(reverse = True) #升序
使用reverse() 方法:用于反向列表中元素。
alist = [123, 'xyz', 'zara', 2018, 'only']
alist.reverse()
print(alist)
以上实例输出结果如下:
>>>['only', 2018, 'zara', 'xyz', 123]
map(方法名, 列表)
类似for循环
def f(x):
return x*x
data = map(f, [1, 2, 3])
for i in data:
print (i)
输出结果:
1
4
9
def f(self):
return self["id"]
data = map(f, [{"id":1},{"id":2}])
for i in data:
print(i)
输出结果:
1
2
## 差集
a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
b = [(2, 'aa', 'dsad')]
data = set(a).difference(set(b))
print(type(data))
print(data)
<class "set">
{(3, 'cc', 'dada'), (0, 'ss', 'okok')}
data2 = list(data)
print(type(data2))
print(data2)
<class "list">
[(3, 'cc', 'dada'), (0, 'ss', 'okok')]
## 并集
a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
b = [(2, 'aa', 'dsad')]
data = set(a).union(set(b))
print(type(data))
print(data)
<class "set">
{(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')}
data2 = list(data)
print(type(data2))
print(data2)
<class "list">
[(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
## 交集
a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
b = [(2, 'aa', 'dsad')]
data = set(a).intersection(set(b))
print(type(data))
print(data)
<class "set">
{(2, 'aa', 'dsad')}
data2 = list(data)
print(type(data2))
print(data2)
<class "list">
[(2, 'aa', 'dsad')]
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
list1 = ['1',' ','2',' ','3','4',' ']
while ' ' in list1:
list1.remove(' ')
## ['1', '2', '3', '4']