糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > Python-列表和元组

Python-列表和元组

时间:2024-06-25 08:39:23

相关推荐

Python-列表和元组

独角兽企业重金招聘Python工程师标准>>>

列表list

不固定大小类型可以不一样

长度和索引访问和字符串一样

>>> L = ['a', 'b', 123]>>> L['a', 'b', 123]>>> len(L)3>>> L[0:-1]['a', 'b']

嵌套

M = [[1, 2, 3],[2, 3, 3],[3, 4, 5, 6],]

列表解析

M = [[1, 2, 3],[2, 3, 3],[3, 4, 5, 6],]col2 = [row[1] for row in M]print(col2) # [2, 3, 4]

遍历M,每一行赋值给row,取出每个row中的[1]组成列表。

第二列的每个值加1:

M = [[1, 2, 3],[2, 3, 3],[3, 4, 5, 6],]col2 = [row[1] + 1 for row in M]print(col2) # [3, 4, 5]

取出第二列是偶数的:

M = [[1, 2, 3],[2, 3, 3],[3, 4, 5, 6],]col2 = [row[1] for row in M if row[1] % 2 == 0]print(col2) # [2, 4]

取出矩阵对角线上的值:

M = [[1, 2, 3],[4, 5, 6],[7, 8, 9],]diag = [M[i][i] for i in [0, 1, 2]]print(diag) # [1, 5, 9]

重复字符串中的字符:

doubles = [s * 2 for s in 'hello']print(doubles) # ['hh', 'ee', 'll', 'll', 'oo']

输出两个字符串的交集:

s1 = "SPAM"s2 = "SCAM"intersect = [x for x in s1 if x in s2]print(intersect) # ['S', 'A', 'M']

遍历

list = [2, 3, 1]for item in list:print item # 2 3 1for i in range(len(list)):print i, ":", list[i] # 0:2, 1:3, 2:1for i, item in enumerate(list):print i, ":", item # 0:2, 1:3, 2:1

拷贝

>>> L1 = [2, 3, 4]>>> L2 = L1[:]>>> L1[0] = 24>>> L1[24, 3, 4]>>> L2[2, 3, 4]

和Go不同的是,L1[:]是复制了L1, L1和L2指向了不同的内存区域。

list与字符串的转换:

>>> s = "abc">>> L = list(s)>>> L['a', 'b', 'c']>>> L[0] = 'd'>>> L['d', 'b', 'c']>>> s = ''.join(L)>>> s'dbc'

增加元素

合并两个列表

L1 + L2

>>> L1 = [0, 1]>>> L2 = [3, 4]>>> L1 + L2[0, 1, 3, 4]

重复列表元素n次

L1 * 3

>>> L1 = [1, 2]>>> L1 * 3[1, 2, 1, 2, 1, 2]

append

>>> L = [1, 2]>>> L.append([3, 4])>>> L[1, 2, [3, 4]]

用分片模拟append():

L[len(L):] = [X]在后端插入

L[:0] = [X]在前端插入

extend

>>> L = [1, 2]>>> L.extend([3, 4])>>> L[1, 2, 3, 4]

判断

是否包含某个元素

>>> 1 in L1True

分片赋值

>>> L = [1, 2, 3]>>> L[1:3] = [4, 5, 6]>>> L[1, 4, 5, 6]>>> L[3:] = []>>> L[1, 4, 5]>>> L[1:2] = [6, 7, 8]>>> L[1, 6, 7, 8, 5]

对于L[1:3] = [4, 5, 6]首先删除L[1:3],然后将[4, 5, 6]插入到L[0]之后,类似链表。

如果等号前后出现重叠也是可以的,python会先计算出右边的值然后再删除左边的值:

>>> L = [1, 2, 3, 4]>>> L[0:3] = L[1:4]>>> L[2, 3, 4, 4]

分片是复制了一遍:

t = [1, 2, 3]t2 = t[:]t2[0] = 4# 此时t[0]没有变

排序

list = [2, 3, 1]list.sort()print list # [1, 2, 3]

某个元素出现的次数

t = [1, 1, 3, 4, 3]t.count(1) # 2

元组tuple

不可变任意类型

>>> T = (1, 2, 3)>>> len(T)3>>> T[1]2>>> T + (4, 5)(1, 2, 3, 4, 5)>>> T[1] = 9 # 不能改变元组中元素的值Traceback (most recent call last):File "<stdin>", line 1, in <module>TypeError: 'tuple' object does not support item assignment

>>> (1, 2) + (3, 4)(1, 2, 3, 4)>>> (1, 2) * 4(1, 2, 1, 2, 1, 2, 1, 2)>>> T = (1, 2, 3, 4)>>> T[1:3](2, 3)

元组也可以不加括号:

>>> x = 1,2,3>>> x(1, 2, 3)

加括号的不一定是元组:

>>> x = (1) # 这是数字1>>> x1>>> x = (1,) # 加 ',' 是为了避免歧义,强制认为这是元组>>> x(1,)

如果觉得《Python-列表和元组》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。