首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将2个列表合并到字典中而不丢失Python中的任何元素

将2个列表合并到字典中而不丢失Python中的任何元素
EN

Stack Overflow用户
提问于 2021-03-17 15:00:07
回答 1查看 35关注 0票数 0

我有2个列表,listA和listB的总长度值都是35。然而,当我合并2个列表时,其中一个元素消失了,长度变小了,变成了33。有没有办法在不丢失任何元素的情况下将2列表变成一个字典?我尝试了zip和普通的for循环,但我仍然丢失了一些东西。

代码语言:javascript
复制
listA = ['Produkttyp', 'Integrerade komponenter', 'Spårningsdata', 'Bärstil', 'Urtavla', 'Satta mål', 'Funktioner', 'EAN', 'MPN', 'Typ', 'Upplösning', 'Mått (BxH)', 'Trådlöst gränssnitt', 'Typ', 'Batteritid', 'Information om boetten', 'Namn', 'Storlek', 'Fits Wrist with Circumference', 'Låstyp', 'Material', 'Färg', 'Bredd', 'Djup', 'Längd', 'Vikt', 'Förinstallerad programvara', 'Vibrerande alarm', 'Material', 'Skydd', 'Inkluderade tillbehör', 'Emballagets bredd', 'Emballagets djup', 'Emballagets höjd', 'Emballagets vikt']

listB = ['Aktivitetspårare', 'Hjärtfrekvenssensor', 'Distans, tid, brända kalorier, aktivitet, sovaktivitet, hjärtfrekvens, steg tagna, Antal våningar upp, stressnivå, styrka', 'Handled', 'Ja', 'Ja', 'Meddelande om missade samtal, musikfjärrhantering, SMS-meddelande, E-postmeddelande, kamerafjärrkontroll, Bluetooth Smart-teknologi, automatisk övningsigenkänning, notiser via sociala media, Move IQ, accelerometer, miljöljussensor, barometer, hjärtfrekvens, VO2 max', '753759205157', '010-01995-03', 'OLED - monokrom', '128 x 48 pixlar', '6.6 mm x 17.7 mm', 'Bluetooth 4.0, ANT+', 'Pekskärm', '7 dag(ar)', 'Midnattssvart', 'Band', 'L', '148-215 mm', 'Spänne', 'Silikon', 'Svart', '15 mm', '10.5 mm', '223 mm', '21.5 g', 'VO2 Max, Fitness Age, Move IQ', 'Ja', 'Aluminium', 'Vattentät', 'Laddnings-/datakabel', '14.1 cm', '6.9 cm', '6.2 cm', '116.2 g']

dict(zip(listA,listB))

代码语言:javascript
复制
the result will be: 33 only 
'Produkttyp':'Aktivitetspårare'
'Integrerade komponenter':'Hjärtfrekvenssensor'
'Spårningsdata':'Distans, tid, brända kalorier, aktivitet, sovaktivitet, hjärtfrekvens, steg tagna, Antal våningar upp, stressnivå, styrka'
'Bärstil':'Handled'
'Urtavla':'Ja'
'Satta mål':'Ja'
'Funktioner':'Meddelande om missade samtal, musikfjärrhantering, SMS-meddelande, E-postmeddelande, kamerafjärrkontroll, Bluetooth Smart-teknologi, automatisk övningsigenkänning, notiser via sociala media, Move IQ, accelerometer, miljöljussensor, barometer, hjärtfrekvens, VO2 max'
'EAN':'753759205157'
'MPN':'010-01995-03'
'Typ':'Pekskärm'
'Upplösning':'128 x 48 pixlar'
'Mått (BxH)':'6.6 mm x 17.7 mm'
'Trådlöst gränssnitt':'Bluetooth 4.0, ANT+'
'Batteritid':'7 dag(ar)'
'Information om boetten':'Midnattssvart'
'Namn':'Band'
'Storlek':'L'
'Fits Wrist with Circumference':'148-215 mm'
'Låstyp':'Spänne'
'Material':'Aluminium'
'Färg':'Svart'
'Bredd':'15 mm'
'Djup':'10.5 mm'
'Längd':'223 mm'
'Vikt':'21.5 g'
'Förinstallerad programvara':'VO2 Max, Fitness Age, Move IQ'
'Vibrerande alarm':'Ja'
'Skydd':'Vattentät'
'Inkluderade tillbehör':'Laddnings-/datakabel'
'Emballagets bredd':'14.1 cm'
'Emballagets djup':'6.9 cm'
'Emballagets höjd':'6.2 cm'
'Emballagets vikt':'116.2 g'
len():33
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-17 15:16:04

listA包含两个重复项('Material‘和'Typ')。字典不能有重复的键,这就解释了为什么你在字典中看到的词条较少。

如果您有重复的键,最好的方法是使字典的值成为一个列表,而不是像下面这样创建的单个项:

然后,字典有33个键,但有35个值,因为'Typ‘和'Material’的条目在列表中包含2个条目。

代码语言:javascript
复制
d = dict()

for key, val in zip(listA, listB):
    if key in d:
        d[key].append(val)
    else:
        d[key] = [val]

如果我们看一下'Typ‘的条目,我们会看到:

代码语言:javascript
复制
d['Typ']
['OLED - monokrom', 'Pekskärm']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66668325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档