Как создать словарь с дубликатами ключей из столбца в python - PullRequest
1 голос
/ 24 апреля 2020

У меня есть два столбца, подобных этому:

    AB       A
    AD       B
    AB*AF    D
    CD*EG    E
    CG*AB    H

Я пытаюсь создать словарь с первым столбцом, разделяя значения как ключи и значения с помощью разделителя '*'. Есть дубликаты, которые не следует удалять, поскольку комбинации различны. Кроме того, мне нужно компенсировать значения, которые не объединены с другими значениями, с помощью пустых значений. Это мой код:

for x in lines:
    firstVal.append(x.split('   ')[0].split('*')[0])

    if '*' in x:
            secondVal.append(x.split('  ')[0].split('*')[1])

#to add empty values to create correct pairs (not the best way to compensate empty values!)
count = 0
while (count < 5):     
    count = count + 1
    secondVal.insert(0, '')

#to create pairs 
dictPairs = dict(zip(firstVal, secondVal))

1 Ответ

1 голос
/ 28 апреля 2020

Я надеюсь, что это удовлетворяет вашему требованию:

first_column = ['AB', 'AD', 'AB*AF', 'CD*EG', 'CG*AB']
second_column = ['A', 'B', 'D', 'E', 'H']

d = {}
for index, item in enumerate(first_column):
    for key in item.split('*'):
        if key in d:
            d[key].append(second_column[index])
        else:
            d[key] = [second_column[index]]

ВЫХОД:

{'AB': ['A', 'D', 'H'],
 'AD': ['B'],
 'AF': ['D'],
 'CD': ['E'],
 'EG': ['E'],
 'CG': ['H']}
...