微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从2D列表中删除第一列?

如何解决如何从2D列表中删除第一列?

尝试从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",["orange",["kiwi","punch this"]]

仅在第一列中加上“ this”,而不是第二列。

最好甚至不检查其他列。

解决方法

使用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])
,

尝试一下

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

您可以使用



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]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。