第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在python中制作帶有重復(fù)鍵的字典

在python中制作帶有重復(fù)鍵的字典

開心每一天1111 2019-06-25 15:13:42
在python中制作帶有重復(fù)鍵的字典我有以下清單,其中包含不同值的重復(fù)汽車登記號碼。我想把它轉(zhuǎn)換成一本字典,它接受這個多鍵的汽車登記號碼。到目前為止,當(dāng)我試圖將列表轉(zhuǎn)換為字典時,它刪除了其中一個鍵。有人能告訴我如何用重復(fù)的鍵制作字典嗎?列表是:EDF768, Bill Meyer, 2456, Vet_ParkingTY5678, Jane Miller, 8987, AgHort_ParkingGEF123, Jill Black, 3456, Creche_ParkingABC234, Fred Greenside, 2345, AgHort_ParkingGH7682, Clara Hill, 7689, AgHort_ParkingJU9807, Jacky Blair, 7867, Vet_ParkingKLOI98, Martha Miller, 4563, Vet_ParkingADF645, Cloe Freckle, 6789, Vet_ParkingDF7800, Jacko Frizzle, 4532, Creche_ParkingWER546, Olga Grey, 9898, Creche_ParkingHUY768, Wilbur Matty, 8912, Creche_ParkingEDF768, Jenny Meyer, 9987, Vet_ParkingTY5678, Jo King, 8987, AgHort_ParkingJU9807, Mike Green, 3212, Vet_Parking 我嘗試過的代碼是:data_dict = {}data_list = []def createDictionaryModified(filename):  path = "C:\Users\user\Desktop"  basename = "ParkingData_Part3.txt"  filename = path + "//" + basename  file = open(filename)  contents = file.read()  print contents,"\n"  data_list = [lines.split(",") for lines in contents.split("\n")]  for line in data_list:    regNumber = line[0]    name = line[1]    phoneExtn = line[2]    carpark = line[3].strip()    details = (name,phoneExtn,carpark)    data_dict[regNumber] = details  print data_dict,"\n"  print data_dict.items(),"\n"  print data_dict.values()
查看完整描述

3 回答

?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個贊

Python字典不支持重復(fù)鍵。一種方法是在字典中存儲列表或集合。

實(shí)現(xiàn)這一目標(biāo)的一個簡單方法是使用defaultdict:

from collections import defaultdict

data_dict = defaultdict(list)

你要做的就是替換

data_dict[regNumber] = details

帶著

data_dict[regNumber].append(details)

你會得到一本列表字典。


查看完整回答
反對 回復(fù) 2019-06-25
?
蠱毒傳說

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個贊

您可以在python中更改內(nèi)置類型的行為。對于您的情況,很容易創(chuàng)建dict子類,它將自動將重復(fù)的值存儲在相同鍵下的列表中:

class Dictlist(dict):
    def __setitem__(self, key, value):
        try:
            self[key]
        except KeyError:
            super(Dictlist, self).__setitem__(key, [])
        self[key].append(value)

舉個例子:

>>> d = dictlist.Dictlist()>>> d['test'] = 1>>> d['test'] = 2>>> d['test'] = 3>>> d{'test': [1, 2, 3]}>>> d['other'] = 100
>>> d{'test': [1, 2, 3], 'other': [100]}


查看完整回答
反對 回復(fù) 2019-06-25
  • 3 回答
  • 0 關(guān)注
  • 2013 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號