Python - 在基于用户输入的 for 循环中安排并行列表时遇到问题

问题描述 投票:0回答:1

初学者慢。尝试编写一个程序,询问用户要输入多少条目。根据该号码,它会要求用户提供他们的姓名和地址,以打印在并行列表中。到目前为止,这是我的代码,但我肯定它不正确:

namelist = []
addrlist = []

n = int(input("How many people?: "))


for i in range(n):
    namelist.append(input("Name?: "))
    addrlist.append(input("Address?: "))
    
print("{} lives in {}".format(namelist, addrlist))

我已经对它进行了调整,但我的问题是 1) 它只打印循环的最后一次迭代,或者 2) 它打印带有括号的元素乱序。

最终目标是这样的:

Input
How many people?: 3
Name?: Brandy
Address?: Queens, NY
Name?: Aura
Address?: Los Angeles, CA
Name?: Kendrick
Address?: Chicago, IL

Output
Brandy lives in: Queens, NY
Aura lives in: Los Angeles, CA
Kendrick lives in: Chicago, IL

python arrays for-loop append user-input
1个回答
0
投票

正如评论中所建议的那样,您需要使用

zip()
函数,它将并行列表中的每个元素组合成一个元组,然后返回这些元组的新列表:

namelist = []
addrlist = []

n = int(input("How many people?: "))

for i in range(n):
    namelist.append(input("Name?: "))
    addrlist.append(input("Address?: "))
    
for name, addr in zip(namelist, addrlist):
    print("{} lives in {}".format(name, addr))
© www.soinside.com 2019 - 2024. All rights reserved.