gpt4 book ai didi

python - 多列表理解转化为单列表理解

转载 作者:太空宇宙 更新时间:2023-11-03 14:52:12 25 4
gpt4 key购买 nike

我正在尝试使用列表理解来更改列表的值我可以通过使用 3 个列表理解来做到这一点

clr = [1,2,2,1,3,1,2,3]
clr= ["green" if i== 1 else i for i in clr]
clr = ["yellow" if i==2 else i for i in clr]
clr = ["black" if i == 3 else i for i in clr]

使用下面提到的代码会抛出语法错误

clr = ["green"  if i== 1 else "yellow"  if i==2 else "black"  if i == 3 for i in clr]

有没有更好的方法呢??

最佳答案

是的。例如,您可以定义字典:

the_dic = { 1 : 'green', 2 : 'yellow', 3 : 'black' }

然后执行映射,如:

clr = [<b>the_dic.get(i,i)</b> for i in clr]

或者通过使用 map(..)(在 中它作为一个生成器(因此是惰性的):

clr = <b>map(the_dic.get</b>,clr<b>)</b>

如果 clr 中的元素不在字典中,这将插入 None

如果 在字典中,这将因此将 i 添加到 clr 列表中。这是因为我们使用 the_dic.get(i,i)。第一个 i 是我们在字典中查找的。第二个 i 是“后备”值:我们在找不到 key 时返回的值。

如果您想过滤掉,您可以使用:

clr = [the_dic<b>[i]</b> for i in clr <b>if i in the_dic</b>]

关于python - 多列表理解转化为单列表理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45091415/

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