如何解决切片列表中的每个项目
我有一个包含约3000行的CSV文件,我已将其作为字符串列表导入到Python中以获取以下内容;
mylist = [('GA0001.abc.123',),('GA0002.456.cba',('GA0003.321.abc',('GA0004.xyz.789',)]
有没有办法我可以对所有字符串进行切片以删除最后8个字符,以便列表显示如下:
newlist = [('GA0001',('GA0002',('GA0003',('GA0004',)]
我尝试过[x[:-8] for x in mylist]
,但只返回了[(),(),()]
解决方法
我认为问题在于您的原始列表是元组和字符串的列表。如果您的原始列表是字符串的列表,则解决方案[x[:-8] for x in mylist]
可以使用,但是对于您而言,我们需要:
mylist = [('GA0001.abc.123',),('GA0002.456.cba',('GA0003.321.abc',('GA0004.xyz.789',)]
newlist = [x[0][:-8] for x in mylist]
print(newlist)
输出:
['GA0001','GA0002','GA0003','GA0004']
请注意x[0][:-8]
,而不是x[:-8]
。
您的列表由元组组成,因此您不见了,而且有额外的索引。
如果要保留为元组,请尝试以下操作:
newlist = [(x[0][:-8],) for x in mylist]
如果没有,则删除内部括号:
newlist = [x[0][:-8] for x in mylist]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。