首页 > 解决方案 > 切片列表中的每个项目

问题描述

我有一个包含大约 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],但只是返回[(), (), (), ()]

标签: pythonstringlistslice

解决方案


我认为问题在于您的原始列表是字符串列表。如果您的原始列表是字符串列表,该解决方案将起作用您的情况下,我们需要:[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].


推荐阅读