gpt4 book ai didi

python - 遍历python中的列表并在元素中的字符的第二个实例之后删除字符

转载 作者:行者123 更新时间:2023-12-05 02:29:18 27 4
gpt4 key购买 nike

抱歉,刚接触 python。

基本上我有一长串文件名,一些文件名的格式为 NAME_XX123456,另一些文件名的格式为 NAME_XX123456_123456。

我需要丢失每个元素中第二个下划线和之后的所有内容。下面的代码只遍历了前两个元素,遇到双下划线时不删除其余部分,只是将其拆分。

sample_list=['NAME_XX011024', 'NAME_XX011030_1234', 'NAME_XX011070', 'NAME_XX090119_15165']

shortlist=[]
item = "_"
count = 0
i=0
for i in range(0,len(sample_list)):
if(item in sample_list[i]):
count = count + 1
if(count == 2):
shortlist.append(sample_list[i].rpartition("_"))
i+=1

if (count == 1):
shortlist.append(sample_list[i])
i+=1


print(shortlist)

最佳答案

这是一个简单的拆分连接方法。我们可以用下划线拆分每个输入,然后使用下划线作为分隔符将前两个元素连接在一起。

sample_list = ['NAME_XX011024', 'NAME_XX011030_1234', 'NAME_XX011070', 'NAME_XX090119_15165']
output = ['_'.join(x.split('_')[0:2]) for x in sample_list]
print(output)
# ['NAME_XX011024', 'NAME_XX011030', 'NAME_XX011070', 'NAME_XX090119']

你也可以在这里使用正则表达式:

sample_list = ['NAME_XX011024', 'NAME_XX011030_1234', 'NAME_XX011070', 'NAME_XX090119_15165']
output = [re.sub(r'([^_]+_[^_]+)_.*', r'\1', x) for x in sample_list]
print(output)
# ['NAME_XX011024', 'NAME_XX011030', 'NAME_XX011070', 'NAME_XX090119']

关于python - 遍历python中的列表并在元素中的字符的第二个实例之后删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72225051/

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