Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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 与字典和列表交互_Python_List_Dictionary - Fatal编程技术网

Python 与字典和列表交互

Python 与字典和列表交互,python,list,dictionary,Python,List,Dictionary,我有以下字典: dict={'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 } 另一方面,我有以下清单: list=['AMZN','OR.PA','TEF.MC','FB','YHOO'] 如何返回一个列表,该列表中的值与dictionary中的每个键对应,顺序与tickers列表中显示的顺序一致 这将是所需的输出: list=[ 0.222,0.75,0.111,0.44,0.77] 我知道如何基于同一个字典

我有以下字典:

dict={'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 }
另一方面,我有以下清单:

list=['AMZN','OR.PA','TEF.MC','FB','YHOO']
如何返回一个列表,该列表中的值与dictionary中的每个键对应,顺序与tickers列表中显示的顺序一致

这将是所需的输出:

list=[ 0.222,0.75,0.111,0.44,0.77]
我知道如何基于同一个字典使用键或值进行迭代,但这是我第一次在一边处理字典,另一边处理列表。感谢您像这样阅读我的帖子:

my_dict = {'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 }
other_list = ['AMZN','OR.PA','TEF.MC','FB','YHOO']
res_list = [my_dict[x] for x in other_list]
不要使用诸如
list
dict
之类的名称。执行此操作时可以重命名函数。

如下所示:

my_dict = {'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 }
other_list = ['AMZN','OR.PA','TEF.MC','FB','YHOO']
res_list = [my_dict[x] for x in other_list]
d={'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 }
l=['AMZN','OR.PA','TEF.MC','FB','YHOO']
out=[d[x] for x in l]
print(out) # = [0.222, 0.75, 0.111, 0.44, 0.77]
不要使用诸如
list
dict
之类的名称。这样做时可以重命名函数

d={'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 }
l=['AMZN','OR.PA','TEF.MC','FB','YHOO']
out=[d[x] for x in l]
print(out) # = [0.222, 0.75, 0.111, 0.44, 0.77]
说明:

  • out=[…]
    将构建一个新列表
  • d[x]
    将访问字典值
  • 对于l中的x
    将按顺序迭代列表
说明:

  • out=[…]
    将构建一个新列表
  • d[x]
    将访问字典值
  • 对于l中的x
    将按顺序迭代列表

使用
运算符的解决方案。itemgetter

from operator import itemgetter

dict={'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 }
list=['AMZN','OR.PA','TEF.MC','FB','YHOO']

values = itemgetter(*list)(dict)

print(values)
(0.222, 0.75, 0.111, 0.44, 0.77)

# Convert tuple to list
values = [t for t in values]

print(values)
[0.222, 0.75, 0.111, 0.44, 0.77]

使用
运算符.itemgetter的解决方案

from operator import itemgetter

dict={'OR.PA':0.75,'TEF.MC':0.111,'FB':0.44,'YHOO':0.77,'AMZN':0.222 }
list=['AMZN','OR.PA','TEF.MC','FB','YHOO']

values = itemgetter(*list)(dict)

print(values)
(0.222, 0.75, 0.111, 0.44, 0.77)

# Convert tuple to list
values = [t for t in values]

print(values)
[0.222, 0.75, 0.111, 0.44, 0.77]

[dct[k]表示lst中的k]
并小心使用内置项作为自定义对象名称
[dct[k]表示lst中的k]
并小心使用内置项作为自定义对象名称