Python字典列表到新字典或列表

Python字典列表到新字典或列表,python,dictionary,Python,Dictionary,请原谅我的问题,我是Python新手 我正在使用字典列表: dataset = [ {'id':1,'dateCollected':'2021-03-02','orders':7}, {'id':2,'dateCollected':'2021-03-03','orders':8}, ] match_history_data = [] for item in dataset: match_history_data.append( {"D

请原谅我的问题,我是Python新手

我正在使用字典列表:

dataset = [
    {'id':1,'dateCollected':'2021-03-02','orders':7},
    {'id':2,'dateCollected':'2021-03-03','orders':8},
]
match_history_data = []

for item in dataset:
    match_history_data.append(
            {"DateCollected" : item["dateCollected"],
             "Orders" : item["orders"]})

。。。。这将持续50张唱片

我想创建一个for循环,循环遍历列表中的每个字典,并将某些键值对添加到新字典中

例如:

match_history_data = {}

for i in dataset:
    match_history_data['DateCollected'] = i['dateCollected']
    match_history_data['Orders'] = i['orders']

print(match_history_data)
结果:

{'DateCollected': '2021-03-03', 'Orders': 8}
我希望结果是:

{'DateCollected':'2021-03-02','Orders':7},
{'DateCollected':'2021-03-03','Orders':8}

这就是我想要的工作方式,但只适用于for循环中的第一次迭代。我该如何处理这个问题,以便它遍历“数据集”中的所有记录,并创建新的列表或词典?

您正在创建一个新词典,
match\u history\u data
,然后反复设置相同的条目
'DateCollected'
'Orders'
。for循环的每次迭代都只是覆盖相同的条目

您需要的是新词典的列表:

dataset = [
    {'id':1,'dateCollected':'2021-03-02','orders':7},
    {'id':2,'dateCollected':'2021-03-03','orders':8},
]
match_history_data = []

for item in dataset:
    match_history_data.append(
            {"DateCollected" : item["dateCollected"],
             "Orders" : item["orders"]})

您可以使用列表理解以更简洁的方式实现这一点:

match_history_data = [{"DateCollected" : item["dateCollected"], "Orders" : item["orders"]} for item in dataset]
这个怎么样

match_history_data = [{"DateCollected":x["dateCollected"], "Orders":x["orders"]} for x in dataset]

由于键在字典中是唯一的,所以当您在原始字典列表中循环时,您现在拥有的将覆盖单个字典。您需要的是另一个列表,您可以在每次迭代期间将新字典附加到一个单独的列表中

比如说

new_list = []

for i in dataset:
    match_history_data = {}
    match_history_data['DateCollected'] = i['dateCollected']
    match_history_data['Orders'] = i['orders']
    new_list.append(match_history_data)


如果不想保留原始列表,只需在每个字典中删除
id
键即可。

Nice。在同一秒钟内有三个大致相同的答案。你所拥有的和你想要的基本上是一样的,只是钥匙大写了,
id
钥匙不见了…!?这正是我想要的。非常感谢。您还应该注意,这个新列表与您开始时的列表几乎相同,这使得它有点毫无意义,并且浪费了内存。