我在别的地方找不到怎么做,但可能很简单。我试图利用与dict相关联的value,但目前只能对实际的strings本身进行资本化。

strings = {"1234":{'a'}, "2":{'as'}, "4":{'bat'}, "5":{'car'}, "6":{'dove'}, "7":{'python'}}

我知道这不对:
d = {key:key.upper() for key in strings}

这导致了一个错误,因为我试图解包太多的变量:
d = {key:value.upper() for (key,value) in strings}

最佳答案

你的价值观是固定的,这就是你想要的吗?
您可以将它们设为非集,并将它们作为字符串,然后使用iteritems:

strings = {"1234":'a', "2":'as', "4":'bat', "5":'car', "6":'dove', "7":'python'}

{key: value.upper() for key, value in strings.iteritems()}

或者,如果它们必须是集合,则需要一个附加的迭代层
strings = {"1234":{'a'}, "2":{'as'}, "4":{'bat'}, "5":{'car'}, "6":{'dove'}, "7":{'python'}}

{key: {val.upper() for val in value} for key, value in strings.iteritems()}

关于python - 字典理解查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25936227/

10-12 15:55