马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
×
本帖最后由 15271953841 于 2024-2-21 06:28 编辑
Python 3.12.1 (tags/v3.12.1:2305ca5, Dec 7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
请问如何将列表中的每个元素的值都变成原来的2倍呢?
oho=[1,2,3,4,5]
for i in range(len(oho)): (获取长度,就可以获取每个元素的下标)
oho=oho*2
oho
[2, 4, 6, 8, 10]
oho=[1,2,3,4,5] (用ALT+P重新初始化)
oho=[i*2 for i in oho] (列表推导式通常要比for循环语句的效率快上一倍的速度)
oho
[2, 4, 6, 8, 10]
这就叫“一言以蔽之”。
列表推导式的基本语法
[expression for target in iterable]
[表达式+for语句],别忘了中括号
x=[0,1,2,3,4,5,6,7,8,9]
x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x=[i for i in range(10)]
x
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
x=[i+1 for i in range(10)]
x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
列表推导式转换成循环
x=[]
x
[]
for i in range(10):
x.append(i+1)
x
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
y=[c*2 for c in "FishC"] (处理字符串,列表推导式也可以)
y
['FF', 'ii', 'ss', 'hh', 'CC']
如果想将每一个字符串转换成Unicode编码,并保存为列表。
code=[ord(c) for c in "FishC"] (ord()的作用将单个字符串转换成对应的编码)
code
[70, 105, 115, 104, 67]
matrix=[[1,2,3],
[4,5,6],
[7,8,9]]
col2=[row[1] for row in matrix] (for语句是获得矩阵的每一行)
col2
[2, 5, 8] (提取第2列)
diag=[matrix for i in range(len(matrix))] (拿出对应的索引值,0,1,2)
diag
[1, 5, 9]
right=[matrix[-i-1] for i in range(len(matrix))]
right
[3, 5, 7]
|