如何解决如何从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 举报,一经查实,本站将立刻删除。