列表(list)是Python的数据结构之一。它用于存储有序的数据集合,可以包含不同类型的元素,如整数、浮点数、字符串甚至是其他列表。列表中的每个元素都有一个索引,索引从0开始计数。
创建列表
示例:
my_list=['1','w',4.5,'z'] #列表用方括号创建,列表内的元素之间用逗号隔开
在列表中许多字符串函数仍然使用。
- len()函数可以返回列表内的元素数量
- in函数可以判断元素是否在列表中
- ’+‘可以组合多个列表,‘*’可以复制列表内的元素
- index(x)函数会返回x在列表中第一次出现的索引
示例:
_list=['a','b','c']
_list2=['d','e','f']
a=[len(_list)]
b=_list+a*4+_list2*2
if 'e' in b:
print(b)
列表函数
函数 | 描述 |
sum | 求列表的和 |
min | 求列表中的最小值 |
max | 求列表中的最大值 |
append(x) | 在列表最后添加元素x |
sort() | 排序 |
reverse() | 颠倒列表中元素的顺序 |
remove(x) | 移除列表里第一次出现的x |
pop(i) | 移除在索引为 i 的元素,返回这个元素的值 |
insert(i,x) | 在索引为 i 的位置插入元素x |
示例:
alist=[1,2,2,2,4,1,5,7,9,0]
alist.sort()
print(alist)
print(f'平均数为:{sum(alist)/len(alist)}')
print(f'中位数为:{alist[round(len(alist)/2)]}')
print(f'极值的差为:{max(alist)-min(alist)}')
alist.reverse()
print(alist)
alist=[1,2,2,2,4,1,5,7,9,0]
alist.append(999)
alist.remove(2)
alist.insert(0,888)
print(alist)
print(alist.pop(0))
print(alist)
split函数
split函数可以把一个英文句子转化为一个以句子里全部单词为元素的列表。
s='what a wonderful day'
print(s.split)
列表推导式(list comprehensions)
列表推导式是一种强大而简洁的创建列表方式。
在未使用列表推导式时,创建一个如下的列表将会用到多行代码:
L=[]
for i in range(100):
if i%2!=0:
L.append(i)
print(L)
在使用列表推导式的情况下,则只需要一行代码:
print([i for i in range(100) if i%2!=0])
这是一个简单的列表推导式结构:
[i for i in range(4)]
#它等效于:
l=[]
for i in range(4):
l.append(i)
在这个列表推导式中,最左侧的第一个字母i代表着列表中的元素。从左起第二个语句开始是i需要满足的条件,顺序为从左到右。一个列表推导式可以不止有一个if或for语句。
示例:
print([j for i in range(4) for j in range(10) if i%2!=0 and j%2==0 if j!=6])
#######################################################
#等效于:
l=[]
for i in range(4):
for j in range(10):
if i%2!=0 and j%2==0:
if j!=6:
l.append(j)
print(l)
二维列表(Two-dimensional lists)
二位列表可以很好地表示诸如平面坐标或画面像素等事物。在Python中创建一个二维坐标的方法如下:
l=[[1,2,3],
[4,5,6],
[7,8,9]]
从二维列表中提取元素需要在列表名后加上[行][列]的索引
z=l[2][2]
print(z)
*注意:在Python中左起第一列(1,4,7)的索引为0,最上面一行(1,2,3)的索引为0。
打印二维坐标
打印二维坐标的每一个元素可以用到循环镶嵌结构:
for r in range(3): #真实行数
for c in range(3): #真实列数
print(l[r][c], end=" ")
print()