python - 'for a in x:' 没有解决 'for x in x:'
问题描述
我正在编写一个程序,将输入的名称排序到一个字母列表中。输出应该是:
学生:彭伊万艾伦乔迪梅西
班级卷
艾伦
伊万
乔迪
梅西
彭
我有代码工作,但是当我在单独的行上打印名称时,如果我写:
for a in names:
print(names)
它将全部打印在一行上,但如果我写:
for names in names:
print(names)
它工作正常。(名称是名称列表)。为什么是这样?
解决方案
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
推荐阅读
- php - laravel 5中的三级雄辩关系orderBy
- testng - 我可以在一个 TestNG 案例中多次使用 @BeforeClass 吗?
- java - 如何使用休眠更新主键字段
- python - ValueError:分类指标无法处理未知目标和二元目标的混合
- gridview - Flutter,如何正常构造gridview结构?
- angular - Angular - Facebook 登录打开窗口说:“抱歉,出了点问题。我们正在努力尽快解决这个问题。”
- angular - 在 laravel 应用程序中集成私人消息传递
- css - 转换 css 样式 - !important 到 muiStyle
- botframework - 无法将文件发送/附加到团队中的 ms bot
- ajax - 为什么使用ajax的输出不显示在表格中,而是显示在json格式中?