原始数据如下(局部) ['1709020220', '0', '0']_1341.jpg ['1709020220', '0']_1342.jpg ['1709020223']_914.jpg ['1709020223']_915.jpg 使用切片提取的元素类型为str picd = {} fi = open("dir_50.txt",'r') for l in fi: l = l.strip() if len(l): l=l.split('_') print(type(l[0])) 打印出切片结果(看起来是列表类型,实际上是str) 所以不能使用list.remove()函数去除特定元素(实际上即使转换为列表类型,使用remove函数也只能去除列表中第一次出现的符合要求的值,而且如果列表中没有0,还会出现报错的情况)。也不能使用str.replace()去除特定元素,因为这里的看似列表的元素是一个整体。参考下图进一步理解。 使用eval()函数将其变为列表类型 使用if语句过滤掉列表中不需要的特定值 picd = {} fi = open("dir_50.txt",'r') for l in fi: l = l.strip() if len(l): l=l.split('_') l[0] = eval(l[0]) lval = [] for v in l[0]: # print(type(v)) 结果为<class 'str'> if v != '0': # 遍历时得到的元素时str类型,所以这里要用'0' lval.append(v) print(lval) 部分结果如下: ['1709020228'] ['1709020229'] ['1709020229'] ['1709020230', '1707030416'] ['1709020230', '1707030416'] ['1709020230', '1707030416'] ['1709020231'] ['1709020232'] ['1709020301'] ['1709020301']