【发布时间】:2015-09-21 03:08:39
【问题描述】:
我无法通过换行符将字符串拆分为列表。我的代码:
i=raw_input().split("\n")
.split() 会按照我的想法做吗?如果是这样,我如何让它合作?
这也是我的意见:
>>>>>>v
^ v
^ >>>>X
【问题讨论】:
标签: python python-2.7 split newline
我无法通过换行符将字符串拆分为列表。我的代码:
i=raw_input().split("\n")
.split() 会按照我的想法做吗?如果是这样,我如何让它合作?
这也是我的意见:
>>>>>>v
^ v
^ >>>>X
【问题讨论】:
标签: python python-2.7 split newline
raw_input([提示])
如果提示参数存在,则将其写入标准输出,不带尾随换行符。 然后该函数从输入中读取一行,将其转换为字符串(去除尾随的换行符),然后返回。读取 EOF 时,会引发 EOFError。
它从输入中读取一行。如果要从输入中读取三行,则必须使用三个 raw_input() ,您可以读取三个 raw_input() 并将它们附加到 list 。示例 -
lst = [raw_input(), raw_input(), raw_input()]
演示 -
>>> lst = [raw_input(), raw_input(), raw_input()]
1
2
3
>>> lst
['1', '2', '3']
如果您从文件或其他地方重定向标准输入,正如@KevinGuan 在 cmets 中提到的,您还可以使用 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 本身中读取文件。
【讨论】:
open() 。
我想你想用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']
【讨论】:
使用您的示例输入将文件中的行读入 Python list:
import fileinput
lines = [line.strip() for line in fileinput.input('input.txt')]
输出:
>>> lines
['>>>>>>v', '^ v', '^ >>>>X']
【讨论】: