Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用dict定义更改列表中的值?_Python_List_Dictionary - Fatal编程技术网

Python 如何使用dict定义更改列表中的值?

Python 如何使用dict定义更改列表中的值?,python,list,dictionary,Python,List,Dictionary,我有一个列表l=[1,1,2,1,3,3,1,1,1,3],我想用我的dictd={1:'r',2:'b',3:'g'}得到结果l=[r,r,b,r,g,g,r,r,r,g]?实现这一点最具蟒蛇精神的方式是什么?最具蟒蛇精神的方式可能是: 对于较大的输入,以下可能更快,但Pythonic更少,因为它会支付稍高的设置成本,但(在CPython引用解释器上)会绕过(相对较慢的)字节码解释器,将每元素的工作推到C层: l = list(map(d.__getitem__, l)) # `list()

我有一个列表
l=[1,1,2,1,3,3,1,1,1,3]
,我想用我的dict
d={1:'r',2:'b',3:'g'}
得到结果
l=[r,r,b,r,g,g,r,r,r,g]
?实现这一点最具蟒蛇精神的方式是什么?

最具蟒蛇精神的方式可能是:

对于较大的输入,以下可能更快,但Pythonic更少,因为它会支付稍高的设置成本,但(在CPython引用解释器上)会绕过(相对较慢的)字节码解释器,将每元素的工作推到C层:

l = list(map(d.__getitem__, l))  # `list()` wrapping should be omitted on Python 2

下面的列表可以:

mapped = [d[item] for item in l]

请注意,list
l
的表达式将给出语法错误,至少在Python 2中是这样。项目之间需要逗号。您尝试过什么?结果是什么?它们与预期结果相比如何?这是一个教学和帮助网站,不是一个代码编写服务。请检查如何为这个网站提出一个好问题,不要害怕寻求帮助。
mapped = [d[item] for item in l]