如何从二维列表中去除第一列?

尝试从 2D 列表中删除字符串,但仅在第一列中

我的尝试:

list = [[x.strip('this') for x in y[0]] for y in list]

示例列表:

[["apple this","juice this"],
["orange this","lemonade this"],
["kiwi this","punch this"]]

想要的结果:

[["apple","juice this"],
["orange","lemonade this"],
["kiwi","punch this"]]

只从第一列而不是第二列剥离“this”。

最好甚至不检查其他列。


慕虎7371278
浏览 190回答 4
4回答

慕尼黑8549860

使用split()和zip():ee = [["apple this","juice this"],["orange this","lemonade this"],["kiwi this","punch this"]]splitted = [x[0].split()[0] for x in ee]  # ['apple', 'orange', 'kiwi']later_lst = [x[1] for x in ee]  # ['juice this', 'lemonade this', 'punch this']print([list(l) for l in zip(splitted, later_lst)])输出:[['apple', 'juice this'], ['orange', 'lemonade this'], ['kiwi', 'punch this']]单线:print([list(l) for l in zip([x[0].split()[0] for x in ee], [x[1] for x in ee])])编辑:较短的版本:print([[x[0].split()[0], x[1]] for x in ee])

慕侠2389804

尝试这个list = [[(x if i else x.strip()) for i,x in enumerate(y)] for y in list]

POPMUISE

您可以使用list = [[x.strip('strip this') if j==0 else x for j,x in enumerate(y)] for y in list]

慕莱坞森

你可以试试这个。这行代码将删除[[i.replace(' this',''), j] for i, j in a]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python