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]
并小心使用内置项作为自定义对象名称