我们如何使用类似以下的dict?
dict[%s] % variable
对于那些对我要做的事情感兴趣的人,我有三个要点:
dict_1 = {'a':'123', 'b':'234', 'c':'345'}
dict_2 = {'d':'456', 'e':'567', 'f':'678'}
dict_3 = {'a':'e', 'b':'d', 'c':'f'}
我有一个功能,我需要输入类似的东西:
function(dict_1['a'], dict_2['e']) #according to dict_3 that 'a' is paired with 'e'.
编辑:
我试图写一个for循环来遍历所有的dicts并让它们根据dict_3将dict_1和dict_2对配对到函数中。看着你们回答后,我实际上不需要%s的东西。这就是你早上在没有咖啡的情况下尝试编码的情况大声笑。
最后,以下是我想做的事,谢谢大家!:
for i in dict_1:
results = function(dict_1[i],dict_2[dict_3[i]]
答案 0 :(得分:5)
如果我收集的内容是正确的,那么你几乎已经赚了钱。你可以这样写:
dict["%s" % variable]
然而,问题的一个问题是如果你有类似的东西:
d = {3 : 'hello'}
my_key = 3
d['%s' % my_key]
这会因KeyError
无论如何,使用它是一种迂回的方式。你可以写:
dict[otherdict['a']]
答案 1 :(得分:3)
.sidebars:last-child > .side-box
应该有用。
所以我会做类似
的事情function(dict_1['a'], dict_2[dict_3['a']])
在这里使用%运算符对我来说没有多大意义,因为你没有尝试生成带有一些静态数据和可变插入值的字符串。
答案 2 :(得分:2)
因为%
运算符的评估优先于[]
运算符。如果dict["%s" % variable]
已经是字符串,那么您应该dict[variable]
或更轻松variable
。
答案 3 :(得分:2)
如果您的变量是字符串,则直接将它们用作键
dict[variable]
对于您要执行的功能,您可以致电
function(dict1[variable], dict2[dict3[variable]])
如果您尝试为dict3中的每个键和值调用此函数,您可能只想迭代dict3。
for key, val in dict3.items():
function(dict1[key], dict2[values])
有关将这些结果收集到列表中的更多pythonic方法
func_results = [function(dict1[key], dict2[val]) for key, val in dict3.items()]
最后一件事。如果您在此函数调用中只有dict3,则只需要一个元组列表:
arg_list = [('a', 'e'), ('b', 'd'), ('c', 'f')]
func_results = [function(dict1[arg1], dict2[arg2]) for arg1, arg2 in arg_list]
答案 4 :(得分:1)
请注意,如果键是整数而不是字符串,则必须执行以下操作:
dict[int("%d" % some_integer)]