我创建一个列表:
import os
files=[f for f in os.listdir(source) if f.endswith('.tif')]
有时这会产生如下结果:
files=['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
返回:
['1', '001.tif']
['2', '002.tif']
['3', '003.tif']
但有时我会得到这样的结果:
files=['file_0563_74-001.tif', 'file_0563_74-002.tif', 'file_0563_74-003.tif']
for f in files:
l1 = f.split("_")
print( l1[2].split("-") )
返回:
['74', '001.tif']
['74', '002.tif']
['74', '003.tif']
我想创建一个流程控制,如果第一列(例如 74)具有相同的值,则执行其他操作,而不是当它包含不同的值(例如 1、2、3)时。
我该如何实现这一目标?
最佳答案
您可以使用集合理解来提取唯一类型。然后使用 if
/else
构造根据您是否只有一种此类类型来应用逻辑。
files = ['file_1263_1-001.tif', 'file_1263_2-002.tif', 'file_1263_3-003.tif']
file_types = {fn.split('-')[0].rsplit('_')[-1] for fn in files}
if len(file_types) == 1:
# do something
else:
# do something else
关于python - 在Python中结合分割函数和计数出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53315957/