从Python中的字典值访问字符串

问题描述:

我想写一个理解,给定两个字典(f,g),将返回一个字典,其中的键是f的键,并且其值是相应键的f值g的价值。例如,给定:从Python中的字典值访问字符串

f = {0: 'a', 1: 'b'} 
g = {'a': 'apple', 'b': 'banana'} 
my_function_composition(f, g) #returns {0: 'apple', 1: 'banana'} 

我由于某种原因,理解只输出字符串

#output: {0: 'e', 1: 'a'} 

这里的一个人物是我的函数:

def my_function_composition(f, g): 
    return {key: value for key in f for value in g[f[key]]} 

为什么Python的回归似乎什么是值字符串的最后一个字符,而不是整个字符串?

+0

注意它是如何在最后* *字符兼容,想想什么'在G值[F [关键]'手段。 – jonrsharpe

你可以这样说:

def my_function_composition(f, g): 
    return {key: g[value] for key, value in f.items()} 

为了更安全,你可以使用g.get(value, 0)万一g不具有键,你要像0的默认值。

如果只需要g字典中的f值,则可以为value添加额外的检查。

def my_function_composition(f, g): 
    return {key: g[value] for key, value in f.items() if value in g} 
+0

在发布我的解决方案之前没有看到这个 –

def my_function_composition(f, g): 
    return {key1: value2 for key1, value1 in f for key2, value2 in g if value1==key2} 

{key : g.get(f[key], None) for key in f}既蟒蛇3和2