在python中制作带有重复键的字典

在python中制作带有重复键的字典

我有以下清单,其中包含不同值的重复汽车登记号码。我想把它转换成一本字典,它接受这个多键的汽车登记号码。到目前为止,当我试图将列表转换为字典时,它删除了其中一个键。有人能告诉我如何用重复的键制作字典吗?列表是:


EDF768, Bill Meyer, 2456, Vet_Parking

TY5678, Jane Miller, 8987, AgHort_Parking

GEF123, Jill Black, 3456, Creche_Parking

ABC234, Fred Greenside, 2345, AgHort_Parking

GH7682, Clara Hill, 7689, AgHort_Parking

JU9807, Jacky Blair, 7867, Vet_Parking

KLOI98, Martha Miller, 4563, Vet_Parking

ADF645, Cloe Freckle, 6789, Vet_Parking

DF7800, Jacko Frizzle, 4532, Creche_Parking

WER546, Olga Grey, 9898, Creche_Parking

HUY768, Wilbur Matty, 8912, Creche_Parking

EDF768, Jenny Meyer, 9987, Vet_Parking

TY5678, Jo King, 8987, AgHort_Parking

JU9807, 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()


开心每一天1111
浏览 1990回答 3
3回答

MYYA

Python字典不支持重复键。一种方法是在字典中存储列表或集合。实现这一目标的一个简单方法是使用defaultdict:from collections import defaultdict data_dict = defaultdict(list)你要做的就是替换data_dict[regNumber] = details带着data_dict[regNumber].append(details)你会得到一本列表字典。

蛊毒传说

您可以在python中更改内置类型的行为。对于您的情况,很容易创建dict子类,它将自动将重复的值存储在相同键下的列表中: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]}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python