Python - 循环遍历字符串列表以形成新字符串

时间:2015-05-21 18:39:17

标签: python string list

说我有一个字符串列表,如:

list_str = ["Blah1", "Blah2", "Blah3", "Bad", "Yada1", "Yada2", "Yada3"]

如何遍历此列表,以便在遇到“Bad”时,我可以将“Bad”之前的所有字符串放入单独的字符串Blah中,“Bad”之后的所有字符串都将在另一个名为Yada

的字符串

基本上,当我打印Blah时,我应该得到:

Blah1
Blah2
Blah3

每个blah必须用前一个换行符分隔。

3 个答案:

答案 0 :(得分:3)

list_str_blah = list_str[:list_str.index("Bad")]
list_str_yadda = list_str[list_str.index("Bad")+1:]

可能是最简单的方法......虽然你总是可以只调用一次索引然后保存它

bad_idx = list_str.index("Bad")

答案 1 :(得分:3)

您可以使用itertools.takewhile来设置此功能。

>>> import itertools
>>> list(itertools.takewhile(lambda i: i != "Bad", list_str))
['Blah1', 'Blah2', 'Blah3']

同时获取"Bad"

之前和之后的内容
>>> iter_str = iter(list_str)
>>> front, back = list(itertools.takewhile(lambda i: i != "Bad", iter_str)), list(iter_str)
>>> front
['Blah1', 'Blah2', 'Blah3']
>>> back
['Yada1', 'Yada2', 'Yada3']

答案 2 :(得分:2)

不是说我实际上会建议这样编程,但是......

>>> SEP='---'
>>> [x.split(SEP) for x in SEP.join(list_str).partition(SEP + "Bad" + SEP)][0]
['Blah1', 'Blah2', 'Blah3']