gpt4 book ai didi

Python 列表理解错误

转载 作者:行者123 更新时间:2023-12-01 03:11:29 26 4
gpt4 key购买 nike

我想将列表排序为几个月

months = ["Jan", "Feb", "March", "April",
"May", "June", "July", "Aug",
"Sept", "Oct", "Nov", "Dec"]

这个函数有效,但我想使用列表理解来代替

def order(values):
sorted = []
for month in months:
if month in values:
sorted_.append(month)
return sorted_

order(["April","Jan", "Feb"]

输出 - ['一月'、'二月'、'四月']

我尝试了这个,但出现语法错误,我不知道为什么

sorted_ = [month if month in values for month in months]

最佳答案

在列表推导式中执行条件语句有两种不同的方法,这取决于您是否有 else 子句:

没有 else 子句:

[x for x in y if x == z]
[result for element in list if conditional]

带有 else 子句:

[x if x == z else -x for x in y]
[result if conditional else alternative for element in list]

注意:这些也可以组合:

[x if x.name == z else None for x in y if x is not None]
[result if conditional2 else alternative for element in list if conditional1]

这相当于:

total_result = []
for x in y:
if conditional1:
if conditional2:
total_result.append(result)
else:
total_result.append(alternative)

关于Python 列表理解错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42863230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com