繁体   English   中英

比较列表中的元素? (Python)

[英]Compare elements in a list? (Python)

我正在使用列表中的几个文件名,我已经选择了以 txt 结尾的文件来进行一些处理:

my_files = ['my_doc_raw.txt', 'my_doc_transformed.txt', 'some_other_doc.txt', 'requirements.txt']

在这种情况下, my_doc_raw.txtmy_doc_transformed.txt中只有一个文件需要通过下游处理 go 而不是两者。 确保我只保留一个的最佳方法是什么? 我很难弄清楚如何通过删除这两个文件来进行过滤。

请注意,我有一个脚本来确定列表中项目的数据类型。 例如:

[ data_type(i) for i in my_files ] 

#result
["my_doc", "my_doc", "other_doc", "requirements"]

所以考虑到现在我有重复my_doc但我不确定从那里到 go 或采取其他方法,这让我更接近一点。 有小费吗?

只要您有一种清晰且经过验证的方法来规范化您的文件名(例如您的data_type() function,那么您所要做的就是保留一个存储您已处理的每种类型的列表。

这是我的实现:

my_files = ['my_doc_raw.txt', 'my_doc_transformed.txt', 'some_other_doc.txt', 'requirements.txt']

completed = []

for file in my_files:
    file_type = data_type(file)

    if file_type not in completed:
        #Add type to completed so we don't do it again
        completed.append(file_type)
        upstream_process(file)  #Placeholder for whatever processing you want to do

它所做的只是检查数据类型是否在我们的列表中。 如果不是,则将其添加到列表中并进行处理。 这可以防止任何数据类型运行两次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM