[英]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.txt
或my_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.