修改函数输出并保存列表

Modify function to output and save list

我正在尝试 return 来自大约 1000 个 csv 文件名的单元编号列表。我可以阅读它们,然后获取 python 以删除它们周围的所有垃圾并替换第 5 个字符以按照我需要的方式对其进行格式化。我想要 return 所有单元编号的列表,例如 ['6726-0501', '6826-1144']。我目前得到的是它一个一个地打印出单元号而不是保存它们。我已经查看了以前的问题,但似乎无法获得创建列表然后将单元号附加到列表并将该列表保存到变量以进行工作的模式。有谁知道简单修改这个输出列表并保存列表供以后使用的好方法吗?

谢谢,

罗宾

file_names = ['job_1106_unit_672600501_las_PN23074.LAS.csv', 'job_1108_unit_682601144_las_PN23072.LAS.csv']


def change(file_names):
    for comps in file_names:
         comps_of_comps = list(comps)
         unit_num = comps_of_comps[14:23] #[672600501]
         a = (unit_num[0:4])  #[6726]
         b = (unit_num[5:9])   #[0501]
         unit_num = a + list('-') + b  #[6,7,2,6,-,0,5,0,1]
         unit_num = ''.join(unit_num) #6726-0501
         print unit_num

change(file_names)

您可以初始化一个新列表并附加到它和 return 该列表。喜欢

file_names = ['job_1106_unit_672600501_las_PN23074.LAS.csv', 'job_1108_unit_682601144_las_PN23072.LAS.csv']
def change(file_names):
    result = []
    for comps in file_names:
         comps_of_comps = list(comps)
         unit_num = comps_of_comps[14:23] #[672600501]
         a = (unit_num[0:4])  #[6726]
         b = (unit_num[5:9])   #[0501]
         unit_num = a + list('-') + b  #[6,7,2,6,-,0,5,0,1]
         unit_num = ''.join(unit_num) #6726-0501
         result.append(unit_num)
    return result

print change(file_names)

import re

def change(file_names):
    result = []
    for i in file_names:
        s = re.match('.*unit_(.*)_las.*', i).group(1)
        result.append(s[:len(s)/2]+"-"+s[(len(s)/2)+1:])
    return result