将文件扩展名及其在列表中的出现次数写入字典?

问题描述 投票:0回答:1

如何使用循环而不使用正则表达式来解决这个问题?

编写一个函数,该函数接受文件名列表并返回一个字典,其中扩展名作为键,其出现次数作为值。

示例:

#print(count_file_types([“image1.jpg”, “image2.jpg”, “preso.pptx” ]))
#=> {“jpg”: 2, “pptx”: 1}

我尝试过这个,但我想这都是错的:

def count_file_types(string_arr): 
    
    arr = []
    for i in string_arr:
        arr.append(i.split("."))
    return(arr)
    print(arr)

    freq = {}
    for i in arr: 
        if i in freq: 
            freq[i] += 1
        else: 
            freq[item] = 1
    return freq
    print(freq)
  
  
print(count_file_types(['image1.jpg', 'image2.jpg', 'preso.pptx']))   
python python-3.x list dictionary
1个回答
0
投票

您可以使用

pathlib.Path
collections.Counter
来执行此操作。

from pathlib import Path
from collections import Counter

def count_ext(file_list: list[str]):
    return dict(Counter(Path(f).suffix.lstrip('.') for f in file_list))
© www.soinside.com 2019 - 2024. All rights reserved.