gpt4 book ai didi

python - 使用外部文件定义字典键的值列表

转载 作者:行者123 更新时间:2023-11-30 23:42:08 25 4
gpt4 key购买 nike

我有一个包含配对条目(键)列表的文件,如下所示:

6416    2318
84665 88
90 2339
2624 5371
6118 6774

我还有另一个文件,其中包含这些键的值:

266743  Q8IUM7
64343 H7BXU6
64343 Q9H6S1
64343 C9JB40
23301 Q8NDI1
23301 A8K930

正如您所看到的,同一个键可以有多个值。我想做的是通过自动创建初始 k, v 对来创建字典,然后为字典中已有的每个条目附加更多值,如下所示:

程序找到“266743:'Q8IUM7'”,然后找到“64343:'H7BXU6'”。当它找到 "64343: 'Q9H6S1'" 时,它会执行以下操作:"64343: ['H7BXU6', 'Q9H6S1']"

这是我到目前为止所拥有的:

# Create dictionary
data = {}

for line in inmap:
value = []
k, v = [x.strip() for x in line.split('\t')]
data[k] = value.append(v)
if k in data.viewkeys() == True and v in data.viewvalues() == False:
data[k] = value.append(v)

但是 if 语句似乎不起作用。或者在 for 循环中使用 value = [] 。有什么想法吗?

最佳答案

这不是一个好主意。您应该从一开始就使用一个列表,并在进行过程中扩展该列表,而不是在找到多个键值时从“字符串”更改为“字符串列表”。

为此,您只需使用

from collections import defaultdict
data = defaultdict(list)
for line in inmap:
k, v = (x.strip() for x in line.split('\t'))
data[k].append(v)

这有效是因为 defaultdict当您尝试引用尚不存在的键时, list 类型将自动创建一个键以及一个空列表作为其值。否则,它的行为就像普通的字典一样。

结果:

>>> data
defaultdict(<type 'list'>, {'23301': ['Q8NDI1', 'A8K930'],
'64343': ['H7BXU6', 'Q9H6S1', 'C9JB40'], '266743': ['Q8IUM7']})

关于python - 使用外部文件定义字典键的值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11611140/

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