我有一个列表
list= [['1', '2', '4'], ['1', '48', '2'], ['53', '33', '25', '2', '26', '47']]
在每个列表中将其添加到新列表中(从第一个值到值:'2')
newlist= [['1', '2'], ['1', '48'],['48', '2'], ['53', '33']['33', '25']['25', '2']]
但下面的代码可在所有值上运行
[m[i:i+2] for i in range(0, len(list), 1)]
答案 0 :(得分:0)
您可以尝试两个for循环,一个用于循环访问列表中的项,另一个for
循环用于循环访问内部列表中index
的{{1}}。
注意:最好不要使用'2'
作为变量名。
list
答案 1 :(得分:0)
您可以通过将每个子列表的相邻项与zip自身以1的偏移量进行配对,然后使用itertools.takewhile
来输出对,直到第一项等于'2'
:>
from itertools import takewhile
l = [['1', '2', '4'], ['1', '48', '2'], ['53', '33', '25', '2', '26', '47']]
[list(t) for s in l for t in takewhile(lambda t: t[0] != '2', zip(s, s[1:]))]
这将返回:
[['1', '2'], ['1', '48'], ['48', '2'], ['53', '33'], ['33', '25'], ['25', '2']]