sys.stdin"中的"是什么?做到了吗?

时间:2016-12-08 20:53:12

标签: python string stdin

这里有一个简单的问题,但我无法找到明确的答案。我正在编写一些python代码,我对这一行的确切含义感到困惑:

a = []
for x in sys.stdin:
    c = x.split()
    a.extend(c)

当我运行它时,它默认制作一个单词列表,但为什么呢?为什么python默认为单词而不是行,甚至是stdin中的字符?我知道readlines和readline方法,但我对这段代码与stdin的确切内容感到困惑。

1 个答案:

答案 0 :(得分:6)

文件对象(包括sys.stdin)是可迭代的。循环遍历文件对象会产生,因此该文件中的文本一直到下一行分隔符。

它永远不会产生文字。您的代码会生成单词,因为您明确地分割了每一行:

c = x.split()

str.split()没有参数拆分任意长度的空格序列(从开头和结尾删除任何空格),有效地为您提供一个单词列表,然后将其添加到{ {1}}列出a