如何使用范围配对两个不同列表中的项目?

时间:2016-11-15 20:57:29

标签: python python-3.x

我试图使用这两个列表创建一个字典,循环遍历该字典的排序版本。打印出名称,后跟空格,后跟冒号,后跟空格,最后是别名。 例如。斯特林:公爵夫人 把我所做的字面上只打印出名称字典。 ??

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)

3 个答案:

答案 0 :(得分: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])

答案 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'}

如果您只想打印内容,则无需输入dict。只需遍历压缩列表:

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

答案 2 :(得分: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])