Python 列表生成式

列表生成式是一种基于其他 iterable(如集合、元组、其他列表等)创建列表的方法。它还可以用更简单、更吸引人的语法表示 for 和 if 循环

语法格式如:list = [expression for iterm in iterable (if conditional)]

  • (if conditional) 中的 if 语句可有可无,但是前面的 expression 和 for 循环表达式必须存在
  • 注意细节
    • for 循环末尾的表达式放在列表的开头

1、实例如下:

复制代码
words = ['data','science','machine','learning']
# 计算出 words 列表中每个字符串的长度

a = []
for word in words:
    a.append(len(word))
print(a)

# 列表生成式做法
b = [len(word) for word in words]
print(b)

# 结果如下
[4, 7, 7, 8]
[4, 7, 7, 8]
复制代码

  2、列表生成式中带有 if 语句实例如下:

复制代码
words = ['data', 'science', 'machine', 'learning']
# 取出 words 列表中长度大于5的字符串长度
a = []
for word in words:
    if len(word) > 5:
        a.append(word)
print(a)

# 列表生成式做法
b = [word for word in words if len(word) > 5]
print(b)

# 结果如下
['science', 'machine', 'learning']
['science', 'machine', 'learning']
复制代码

  •   在列表生成式中带有多个 for 循环,表示 for 循环嵌套
复制代码
words = ['data', 'science', 'machine', 'learning']
# 找出列表中所有字符串中的所有元音字母

a = []
for word in words:
    for letter in word:
        if letter in ["a","e","i","o","u"]:
            a.append(letter)
print(a)

# 列表生成式做法
b = [letter for word in words for letter in word if letter in ["a","e","i","o","u"]]
print(b)
复制代码

words = ['data', 'science', 'machine', 'learning']
# 找出列表中所有字符串中的所有元音字母,并将所有的元音字母进行大写

b = [letter.upper() for word in words for letter in word if letter in ["a","e","i","o","u"]]
print(b)

# 结果如下
['A', 'A', 'I', 'E', 'E', 'A', 'I', 'E', 'E', 'A', 'I']
复制代码
words = ['data', 'science', 'machine', 'learning']
# 找出 machine 中 c 的索引值

li = []
for word in words:
    if word == "machine":
        for letter in word:
            if letter == "c":
                li.append(word.index(letter))
print(li)

# 列表生成式做法
a = [word.index(letter) for word in words if word == "machine" for letter in word if letter == "c"]
print(a)

# 结果如下
[2]
[2]
复制代码
  • 在列表生成式中传入调用函数
def func(x):
    return x * 2

s = [func(a) for a in range(5)]
print(s)

# 结果如下:
[0, 2, 4, 6, 8]

 

posted @   一个老宅男  阅读(248)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2019-10-31 python(random 模块)
点击右上角即可分享
微信分享提示