gpt4 book ai didi

python - 检查列表中是否有具有特定值的字典

转载 作者:行者123 更新时间:2023-11-28 22:37:50 25 4
gpt4 key购买 nike

我需要填充一个 Python 数据结构,无论是列表还是字典或类似的,每个条目都有多个值,但如果某些值重复,我需要跳过该条目。

例如,假设我有三行文本,每行包含三个值,并且两行具有相同的第一个值:

AAA XXX 132
AAA YYY 465
BBB ZZZ 798

我想要得到的结果是一个包含两个条目的数组或字典,每个条目都包含三个值,这样我以后可以遍历它并获取我可能需要的每个值。

目前我有这样一个例子:

teststring = 'AAA XXX 132\nAAA YYY 465\nBBB ZZZ 798'
a = []

count = 0
for line in teststring.splitlines():
val1 = line[0:3]
val2 = line[4:7]
val3 = line[8:11]
count = count + 1
d = {'val1':val1, 'val2':val2, 'val3':val3}
a.append(d)

for i in a:
print i['val1'] + ' ' + i['val2'] + ' ' + i['val3']

(print 只是一个例子,变量“a”将被传递给另一个函数 ant 在那里进一步操作,所以如果字典中的值有有意义的“名称”,我将不胜感激,比如 i['some_value' ] 而不是 i[1])

但不仅仅是 a.append(d) 我需要跳过第二行 AAA ,比如

if d.['val1'] not in a:
a.append(d)

我很确定解决方案很简单,但我找不到,请帮忙。


这就是我检查后的做法 flyingmeatball的建议:

teststring = 'AAA XXX 132\nAAA YYY 465\nBBB ZZZ 798'
a = {}

for line in teststring.splitlines():
val1 = line[0:3]
val2 = line[4:7]
val3 = line[8:11]
if val1 not in a.keys():
d = {'val1':val1, 'val2':val2, 'val3':val3}
a[val1] = d

for i in a.values():
print i['val1'] + ' ' + i['val2'] + ' ' + i['val3']

如果需要,我可以这样排序:

aa = a.values()
aa.sort(key = lambda dict: dict['val1'])
for i in aa:
print i['val1'] + ' ' + i['val2'] + ' ' + i['val3']

但是我不确定这是否是最佳解决方案...

最佳答案

我想你想要的只是一个字典,如果它还不存在,你只把它读入字典?

teststring = 'AAA XXX 132\nAAA YYY 465\nBBB ZZZ 798'

outputDict = {}

for line in teststring.splitlines():
val1 = line[0:3]
val2 = line[4:7]
val3 = line[8:11]

if val1 not in outputDict:
outputDict[val1] = [val2,val3]

关于python - 检查列表中是否有具有特定值的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36179098/

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