Python 2.7.3:从列表中获取一个项目并将其作为字典中的一个键

时间:2017-07-18 05:31:49

标签: python dictionary

我想从列表中取出项目并将它们放入字典中。

说我们有以下

carList = set(zip(carWordList, carWordFreq))

注意:我使用set删除重复项

因此carList将产生以下内容:

set([('merry', 3), ('cop', 25), ('completely', 21), ('jaw', 2), ('fiddle', 1), ('bright', 4), ('593', 1), ('asked', 22), ('additionally', 4), ('pretend', 1), ('beam', 4)])

现在我想接受这些词(例如' merry')并将它们设置为字典(newDic),并将数字作为值。

另外,我想用新词典创建另一个有两个键的词典(otherDic)(一个是单词(例如' merry'),另一个是" Car&#34 ;,稍后会取值

for key in newDic:
    otherDic = [key]["Car"]

我尝试执行以下操作:

for key in carList:
    otherDic = [key]["Car"]

但是,我收到以下错误:

TypeError:list indices必须是整数,而不是str

2 个答案:

答案 0 :(得分:2)

当你这样做时

otherDic = [key]["Car"]

您只是创建一个仅包含[key]的列表key,然后您尝试使用"Car"而不是整数对其进行索引,这就是您收到错误的原因

其次,如果没有创建我在任何时候看不到您的for key in newDic:,就无法开始循环到此newDic

无论如何,这是解决问题的错误方法。要将set转换为字典,您只需执行此操作:

my_dict = {key: value for key, value in carList}

顺便说一下这就是字典理解。但正如@Adam Smith所指出的,这实际上相当于

my_dict = dict(carList)

哪个更简单...但在那之后,我不太明白你的意思是创建另一个每个值有2个键的字典。你不能用2个键创建一个dict,这不是它们的工作方式。你可以在这里评论这个新词典的期望输出,我将编辑我的答案。

答案 1 :(得分:-1)

您可以使用词典理解:

Phone Num   No of answer  
01755677011 0,23  
01755677012 1