我有一个列表字典,如何制作第i个元素的字典?

问题描述 投票:-1回答:3

在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'}

我知道词典理解是一件事,但我对如何使用它感到困惑。我不确定这是否是实现我的目标的最优雅的方式,我可以切片字典吗?

python python-3.x dictionary
3个回答
1
投票

如果你想创建Get_element()函数,这是要走的路:

def Get_element(d, i):
    return {k: v[i] for k, v in d.items()}

1
投票
def ith_element(d, i):
  return { k : v[i] for k, v in d.items() }

这是一个可以完成这项工作的小字典。您只需逐个查看字典中的所有键值对,并对其进行一些转换,从而生成另一个字典,其中包含与现有字符串相同数量的字符串。

您可以阅读更多关于列表推导here的信息。


1
投票

这是一种方式:

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}
© www.soinside.com 2019 - 2024. All rights reserved.