尝试编写一个列表解析,可以从input()遍历一个字符串,并创建一个列表,其中每个字符串都有自己的索引。
本质上,我想要一个能够做到这一点的函数:
String name
当在那里放一个实际的字符串(" 00.00")时,python正是我想要它做的。但它拒绝以相同的方式接受输入():
Country country
" what"在我输入的内容中,但基本上我已经放入的其他内容也是如此。我不确定input()改变索引的工作方式有什么不同。它是什么?
答案 0 :(得分:4)
你产生了一个相当冗长的list()
拼写。这里没有必要使用列表理解:
list(input())
你出了什么问题,列表理解前面的表达式每次迭代都会计算 ;所以你先调用input()
来获取一个字符串,然后对于该字符串中的每个字符再次调用input()
,但这次输入不一定是相同的字符串。< / p>
如果您确实需要对字符串进行列表理解,只需直接迭代字符串即可。 Python for
循环是for each construct,不需要生成索引;例如,要过滤输入以生成小写ASCII字母列表,则无需使用range()
:
[char for char in input() if 'a' <= char <= 'b']