2016-11-15 26 views
1

我试图做一个使用这两个列表的字典,循环该字典的排序版本。打印出名称,后跟一个空格,后跟一个冒号,后面跟一个空格,最后是别名。例如,斯特林:公爵夫人 把我所做的字面意思打印出名字字典。 ??如何使用范围将项目放在两个不同的列表中?

name = ["Stirling","Lana","Cyril","Pam","Ray","Cheryl"] 
alias =["Duchess","Truckasaurus","Chet","Cookie Monster","Gilles de Rais","Cherlene"] 

randomV = {} 

for i in range(0,len(name)): 
    item = [name, alias] 


for word in name and alias: 
    print(item) 
+2

退房内置的ZIP功能。它允许您同时遍历多个列表。 – chatton

回答

3

我想你想

names = ["Stirling","Lana","Cyril","Pam","Ray","Cheryl"] 
aliases =["Duchess","Truckasaurus","Chet","Cookie Monster","Gilles de Rais","Cherlene"] 

for name, alias in zip(names, aliases): 
    print "{} : {}".format(name, alias) 

要创建一个快译通,d = dict(zip(names, aliases))

你尝试有几个问题:item是完全相同的值通过你的第一个循环的每个时间,因为你从来没有真正使用的i值,name and alias简单地计算为第一个非空列表(即name)。你也许

items = [] 
for i in range(len(name)): 
    item[i] = (name[i], alias[i]) 

for word in items: 
    print(word[0], ":", word[1]) 
0

想为了得到dict从两个列表,同时创建列表和一个压缩版本,它类型转换为dict。您将通过映射获取字典对象。

# If order of insertion does not matter 
dict(zip(names, aliases)) 

# OrderedDict if order matters 
>>> from collections import OrderedDict 
>>> OrderedDict(zip(name, alias)) 

采样运行:

>>> name = ["Stirling","Lana","Cyril","Pam","Ray","Cheryl"] 
>>> alias =["Duchess","Truckasaurus","Chet","Cookie Monster","Gilles de Rais","Cherlene"] 
>>> dict(zip(name, alias)) 
{'Cheryl': 'Cherlene', 'Cyril': 'Chet', 'Lana': 'Truckasaurus', 'Stirling': 'Duchess', 'Pam': 'Cookie Monster', 'Ray': 'Gilles de Rais'} 

如果你只是想打印的内容,无需类型转换的字典。简单地遍历压缩列表:

for name, alias in zip(names, aliases): 
    print "{} : {}".format(name, alias) 

既然你已经明确提到使用range()。它可以通过完成:

list_len = len(names) # OR, len(aliases), assuming both will have same length 

my_dict = {} 
for i in range(list_len): 
    my_dict[names[i]] = aliases[i] # for creating dict 
    print "{} : {}".format(names[i], aliases[i]) # for printing content 
0

该字典的排序版本。

字典在python中的本质是未分类的,但这并不重要,因为所有你需要的是获得与它相关的值的关键。

name = ["Stirling","Lana","Cyril","Pam","Ray","Cheryl"] 
alias =["Duchess","Truckasaurus","Chet","Cookie Monster","Gilles de Rais","Cherlene"] 

dict = {} 

for i in range(len(name)): 
    dict[name[i]] = alias[i] 

,如果你想打印在字典中的项目,你可以使用:

for key in dict: 
print(key + " : " + dict[key]) 
相关问题