我无法通过换行符将字符串拆分为列表。我的代码:
i=raw_input().split("\n")
.split()
执行我认为的操作吗?如果是这样,我该如何让它合作?
以下是我的意见:
>>>>>>v
^ v
^ >>>>X
答案 0 :(得分:4)
<强>的raw_input([提示])强>
如果存在prompt参数,则将其写入标准输出而不带尾随换行符。 该函数然后从输入读取一行,将其转换为字符串(剥离尾随换行符),然后返回该行。读取EOF时,会引发EOFError。
它从输入中读取一行。如果要从输入中读取三行,则必须使用三个raw_input()
,您可以阅读三个raw_input()
并将它们附加到列表中。示例 -
lst = [raw_input(), raw_input(), raw_input()]
演示 -
>>> lst = [raw_input(), raw_input(), raw_input()]
1
2
3
>>> lst
['1', '2', '3']
如果要从文件或其他地方重定向标准输入,如@KevinGuan的评论中所述,您也可以使用sys.stdin.read()
一次读取完整输入,然后对其进行拆分。示例 -
import sys
x = sys.stdin.read()
print(x.split('\n'))
示例文本文件 -
Blah
Blah1
blah2
结果 -
python a.py < a.txt
['Blah', 'Blah1', 'blah2']
但请注意,如果您从文件重定向,我宁愿使用open()
来读取python本身的文件。
答案 1 :(得分:3)
我认为你想使用sys.stdin.read()
:
import sys
data = sys.stdin.read()
data_list = data.strip().split('\n')
print data_list
<强>输出:强>
# here is the input:
>>>>>>v
^ v
^ >>>>X
# then press Ctrl+D on Linux, or Ctrl+Z on Windows
['>>>>>>v', '^ v', '^ >>>>X']
答案 2 :(得分:0)
使用示例输入读取文件中的行列表:
import fileinput
lines = [line.strip() for line in fileinput.input('input.txt')]
输出:
>>> lines
['>>>>>>v', '^ v', '^ >>>>X']