gpt4 book ai didi

python - 将列表附加到值以匹配键值

转载 作者:行者123 更新时间:2023-11-28 21:49:17 24 4
gpt4 key购买 nike

我的 csv 中有以下两行:

0000001,0,-94.8,28
0000001,6,-95.4,28

假设 source_id 0000001 对应于 event_id 123456,这就是以下代码行的作用:

source_id = row[0].lstrip("0")
if source_id in sourceid_eventid_dict:
event_id = sourceid_eventid_dict[source_id]

读取两行csv后,我需要获取以下字典集。

{123456: [[-94.8, 28], [-95.4, 28]}

我目前的代码如下:

model_dev_coordinate_dict = dict()    
# create dict of eventid, coordinates from model dev csv
with open(model_dev_file, newline='') as f:
reader = csv.reader(f)
for row in reader:
source_id = row[0].lstrip("0")
if source_id in sourceid_eventid_dict:
event_id = sourceid_eventid_dict[source_id]
model_dev_coordinate_dict.setdefault(event_id, []).append([row[2], row[3]])

我的代码每次都创建一个新的键值对,而不是使用现有键将新列表附加到现有值。

最佳答案

After reading the two rows of csv in I need to get the following dictionary set. {123456: [[-94.8, 28], [-95.4, 28]}.

为此,您可以使用 csv 模块解析输入,slicingsource_id 与每一行的 data 分开,一个简单的字典将 em>source_idevent_id,以及带有 list.appenddict.setdefault() 来处理数据聚合。

import csv
import pprint

s = '''\
0000001,0,-94.8,28
0000001,6,-95.4,28
0000002,7,-97.6,29
'''.splitlines()

event_map = {'0000001': '123456', '0000002': '789012'}

groupdict = {}
for row in csv.reader(s):
source_id = row[0]
event_id = event_map[source_id]
data = row[1:]
groupdict.setdefault(event_id, []).append(data)
pprint.pprint(groupdict)

以上代码输出:

{'123456': [['0', '-94.8', '28'], ['6', '-95.4', '28']],
'789012': [['7', '-97.6', '29']]}

关于python - 将列表附加到值以匹配键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33706777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com