首页 > 解决方案 > 'for a in x:' 没有解决 'for x in x:'

问题描述

我正在编写一个程序,将输入的名称排序到一个字母列表中。输出应该是:

学生:彭伊万艾伦乔迪梅西

班级卷

艾伦

伊万

乔迪

梅西

我有代码工作,但是当我在单独的行上打印名称时,如果我写:

for a in names:
  print(names)

它将全部打印在一行上,但如果我写:

for names in names:
   print(names)

它工作正常。(名称是名称列表)。为什么是这样?

标签: python

解决方案


names = ['Alan','Ivan','Jodi','Macy','Peng']

# This will print whatever is assigned to `names` for the number of times `names` is iterated
for a in names:
  print(names)

输出:

['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']
['Alan', 'Ivan', 'Jodi', 'Macy', 'Peng']

现在:

# You're using same variable name for printing
for names in names:
   print(names)

额外说明:正如@buran 所说:这是有效的,但不希望使用,因为最终值names将是列表中的最后一个元素,而不是原始列表names

输出:

Alan
Ivan
Jodi
Macy
Peng

最后:

# This is what you need i.e. for each name in names, print the name
for name in names
   print(name)

输出:

Alan
Ivan
Jodi
Macy
Peng

推荐阅读