使用列表推导和问题的麻烦输入()

时间:2017-07-25 20:34:09

标签: python list input list-comprehension

尝试编写一个列表解析,可以从input()遍历一个字符串,并创建一个列表,其中每个字符串都有自己的索引。

本质上,我想要一个能够做到这一点的函数:

String name

当在那里放一个实际的字符串(" 00.00")时,python正是我想要它做的。但它拒绝以相同的方式接受输入():

Country country

" what"在我输入的内容中,但基本上我已经放入的其他内容也是如此。我不确定input()改变索引的工作方式有什么不同。它是什么?

1 个答案:

答案 0 :(得分:4)

你产生了一个相当冗长的list()拼写。这里没有必要使用列表理解:

list(input())

你出了什么问题,列表理解前面的表达式每次迭代都会计算 ;所以你先调用input()来获取一个字符串,然后对于该字符串中的每个字符再次调用input() ,但这次输入不一定是相同的字符串。< / p>

如果您确实需要对字符串进行列表理解,只需直接迭代字符串即可。 Python for循环是for each construct,不需要生成索引;例如,要过滤输入以生成小写ASCII字母列表,则无需使用range()

[char for char in input() if 'a' <= char <= 'b']