Python学习第十八天—列表6列表推导式1

[复制链接]
15271953841 发表于 2024-2-11 06:36:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
本帖最后由 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]

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|鄂ICP备13007585号-4

在本发帖
关注公众号
QQ客服返回顶部