将多行字符串的每一行发送到for循环中的列表

我有一个多行字符串,如下所示:


something1

something2

something3

我想将此字符串的每一行发送到一个列表,result[0] = something1依此类推。


我试过这样做:


for line in tableOut:

        results.append(line.strip().split('\n'))

但是,这会使字符串的每个字符都发送到列表中的唯一索引。


例如:


[['s'], ['o'], ['m'], ['e'], ['t'], ['h'], ['i'], ['n'], ['g'], ['1']]

为什么这不起作用,如何将多行字符串的每一行发送到 for 循环内列表中的唯一索引?


撒科打诨
浏览 79回答 2
2回答

HUWWW

tableOut是一个字符串:一个字符序列。命名循环索引line会产生误导,因为字符串上的迭代器会返回单个字符。那是你的主要问题。相反,split您的字符串变成了行列表——正如@sardok 已经总结的那样。剥离各个线。您可以使用列表理解而不是显式循环来做到这一点。results = [strip(line) for line in tableOut.split('\n')]

蝴蝶刀刀

目前尚不清楚您所说的“多行”字符串是什么意思,但可以说它是这样的:tableOut = 'something1\n' \           'something2\n' \           'something3'然后你可以这样做:result = []for line in tableOut.split('\n'):    result.append(line.strip())不是最 Pythonic 的方式,但它与您尝试做的类似。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python