Python字典列表到新字典或列表
请原谅我的问题,我是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
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
钥匙不见了…!?这正是我想要的。非常感谢。您还应该注意,这个新列表与您开始时的列表几乎相同,这使得它有点毫无意义,并且浪费了内存。