在Python3中对多个列表进行For循环以生成一条语句
如果这是一个重复的问题,我很抱歉。我花了一个小时试图找到答案,并测试了一些理论,但没有成功。在不发布我正在编写的全部代码的情况下,我只发布代码片段 基本上,我需要将这些for循环语句全部打印到一行中,以便为每个员工运行 i、 雇员山姆31岁,他们的头衔是数据分析师,年收入9万美元。他们2017年的奖金将为2700美元。” 您可以使用在并行列表中进行集体迭代在Python3中对多个列表进行For循环以生成一条语句,python,python-3.x,Python,Python 3.x,如果这是一个重复的问题,我很抱歉。我花了一个小时试图找到答案,并测试了一些理论,但没有成功。在不发布我正在编写的全部代码的情况下,我只发布代码片段 基本上,我需要将这些for循环语句全部打印到一行中,以便为每个员工运行 i、 雇员山姆31岁,他们的头衔是数据分析师,年收入9万美元。他们2017年的奖金将为2700美元。” 您可以使用在并行列表中进行集体迭代 for name, age, job, salary, bonus in zip(names, ages, jobs, salaries,
for name, age, job, salary, bonus in zip(names, ages, jobs, salaries, bonuses):
print ("Employee %s" % name)
print ("is %s years old" % age)
print (", their job title is %s" % job)
print (" and they make %s annually" % salary)
print ("Their 2017 bonus will be %s." % bonus)
这将使消息的每一部分仍保留在单独的行上,因为它们是单独的打印语句。相反,您可以将它们合并为一个打印
:
for name, age, job, salary, bonus in zip(names, ages, jobs, salaries, bonuses):
print ("Employee %s is %s years old. Their job title is %s, and "
"they make %s annually. Their 2017 bonus will be %s."
%(name, age, job, salary, bonus))
zip
将它们放在一起,理想情况下,使用格式字符串来减少整个行,因为它们都使用相同的格式:
emps = zip(names, ages, jobs, salaries, bonuses)
fmt = ("Employee {} is {} years old, their job "
"title is {} and they make {} annually. "
"Their 2017 bonus will be {}.")
for emp in emps:
print(fmt.format(*emp))
相应地调整
fmt
中的格式。如果您确定所有列表的长度相同,也可以通过索引访问列表
for i in range(len(names)):
print(names[i], ages[i], jobs[i], salaries[i], bonuses[i])
我个人并不认为这会使代码的可读性比使用
zip
更差,因为这可能是伟大答案的重复。也许你还应该添加end=”“print
函数中的
参数以获得一行输出。@SamChats是的,这很有意义。只需将print
s组合到一条语句中可能会更容易。
for i in range(len(names)):
print(names[i], ages[i], jobs[i], salaries[i], bonuses[i])