gpt4 book ai didi

python - 在Python中结合分割函数和计数出现次数

转载 作者:太空宇宙 更新时间:2023-11-03 21:34:35 24 4
gpt4 key购买 nike

我创建一个列表:

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com