如何将包含固定后缀成对元素的Python列表转换为字典
实现代码
方案1:简洁写法(适用于所有基础元素都存在对应带后缀元素的场景)
my_list = ['name1', 'name2', 'sth1', 'sth2', 'sth2_suffix', 'sth1_suffix', 'name2_suffix', 'name1_suffix'] # 替换为你实际使用的固定后缀 FIXED_SUFFIX = '_suffix' my_dict = {item: f"{item}{FIXED_SUFFIX}" for item in my_list if not item.endswith(FIXED_SUFFIX)} print(my_dict)
运行输出就是你需要的结构:
{'name1': 'name1_suffix', 'name2': 'name2_suffix', 'sth1': 'sth1_suffix', 'sth2': 'sth2_suffix'}
方案2:鲁棒性写法(自动过滤无对应后缀的基础元素)
如果不能保证每个无后缀元素都有对应的带后缀元素,用这个写法避免生成无效键值对:
my_list = ['name1', 'name2', 'sth1', 'sth2', 'sth2_suffix', 'sth1_suffix', 'name2_suffix', 'name1_suffix'] FIXED_SUFFIX = '_suffix' # 先提取所有带后缀的元素存入集合,查询效率更高 suffix_item_set = {i for i in my_list if i.endswith(FIXED_SUFFIX)} my_dict = {} for base_item in my_list: if not base_item.endswith(FIXED_SUFFIX): matched_suffix_item = base_item + FIXED_SUFFIX if matched_suffix_item in suffix_item_set: my_dict[base_item] = matched_suffix_item
内容的提问来源于stack exchange,提问作者m m
相关产品推荐
相关产品推荐

