在python 3中工作。
所以我有这样的字典;
{"stripes": [1,0,5,3], "legs": [4,4,2,3], "colour": ['red', 'grey', 'blue', 'green']}
我知道字典中的所有列表都有相同的长度,但可能不包含相同类型的元素。其中一些甚至可能是列表清单。
我想要回复这样的字典;
$>>> Get_element(2)
{"stripes": 5, "legs": 2, "colour": 'blue'}
我知道词典理解是一件事,但我对如何使用它感到困惑。我不确定这是否是实现我的目标的最优雅的方式,我可以切片字典吗?
如果你想创建Get_element()
函数,这是要走的路:
def Get_element(d, i):
return {k: v[i] for k, v in d.items()}
def ith_element(d, i):
return { k : v[i] for k, v in d.items() }
这是一个可以完成这项工作的小字典。您只需逐个查看字典中的所有键值对,并对其进行一些转换,从而生成另一个字典,其中包含与现有字符串相同数量的字符串。
您可以阅读更多关于列表推导here的信息。
这是一种方式:
d = {"stripes": [1,0,5,3], "legs": [4,4,2,3], "colour": ['red', 'grey', 'blue', 'green']}
def get_element(d, i):
return dict(zip(d, list(zip(*d.values()))[i]))
get_element(d, 2)
# {'colour': 'blue', 'legs': 2, 'stripes': 5}