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

Python 如何使用范围将两个不同列表中的项目配对?,python,python-3.x,Python,Python 3.x,我试图用这两个列表制作一本词典,循环浏览该词典的排序版本。打印出名称,后跟空格,后跟冒号,后跟空格,最后是别名。 斯特林:公爵夫人 把我所做的按字面意思打印出名字dict name = ["Stirling","Lana","Cyril","Pam","Ray","Cheryl"] alias =["Duchess","Truckasaurus","Chet","Cookie Monster","Gilles de Rais","Cherlene"] randomV = {} for i i

我试图用这两个列表制作一本词典,循环浏览该词典的排序版本。打印出名称,后跟空格,后跟冒号,后跟空格,最后是别名。 斯特林:公爵夫人 把我所做的按字面意思打印出名字dict

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)
我想你想要

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)
要创建一个dict,
d=dict(zip(名称、别名))

您的尝试有几个问题:
item
在第一个循环中每次都是相同的精确值,因为您从未实际使用
i
的值,
name和alias
只计算第一个非空列表(即
name
)。你也许想要

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

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

要从两个列表中获取
dict
,请创建两个列表的压缩版本,并键入cast将其转换为
dict
。您将获得带有映射的dictionary对象

# 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'}
如果您只想打印内容,无需键入cast命令。只需在压缩列表上迭代即可:

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
那本词典的分类版本

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])

查看内置的zip函数。它允许您同时遍历多个列表。