"for x in sys.stdin" 究竟是做什么的?
What does "for x in sys.stdin" do exactly?
这里是一个简单的问题,但我找不到明确的答案。我正在编写一些 python 代码,但我对这一行的确切作用感到困惑:
a = []
for x in sys.stdin:
c = x.split()
a.extend(c)
当我运行它时,它默认制作一个单词列表,但这是为什么呢?为什么 python 默认为单词而不是行,甚至是标准输入中的字符?我知道 readlines 和 readline 方法,但我对这段代码对标准输入的作用感到困惑。
文件对象,包括 sys.stdin
,是可迭代的。遍历文件对象会产生 行 ,因此该文件中的文本到下一个行分隔符。
它从不产生文字。您的代码会产生单词,因为您明确地拆分了每一行:
c = x.split()
str.split()
没有参数拆分 任意长度的空白序列 (从开头和结尾删除任何空白),有效地为您提供一个单词列表,这些单词是然后用 list.extend()
.
添加到 a
列表
这里是一个简单的问题,但我找不到明确的答案。我正在编写一些 python 代码,但我对这一行的确切作用感到困惑:
a = []
for x in sys.stdin:
c = x.split()
a.extend(c)
当我运行它时,它默认制作一个单词列表,但这是为什么呢?为什么 python 默认为单词而不是行,甚至是标准输入中的字符?我知道 readlines 和 readline 方法,但我对这段代码对标准输入的作用感到困惑。
文件对象,包括 sys.stdin
,是可迭代的。遍历文件对象会产生 行 ,因此该文件中的文本到下一个行分隔符。
它从不产生文字。您的代码会产生单词,因为您明确地拆分了每一行:
c = x.split()
str.split()
没有参数拆分 任意长度的空白序列 (从开头和结尾删除任何空白),有效地为您提供一个单词列表,这些单词是然后用 list.extend()
.
a
列表