如何将字符串列表转换为列表的字典,其中键以给定的子字符串开头

朱莉·哈迪(Julie Hardy)

我有一个这样的清单:

list = ['ID - ISO', 'CATA - CIT', 'CATA - CIT2', 'ID - ISO6', 'CATA - CIT', 'CATA - CIT2', 'CATA - CIT6', 'CATA - CIT8']

我想创建一个这样的字典

dict = {'ID - ISO': ['CATA - CIT', 'CATA - CIT2'], 
        'ID - ISO6': ['CATA - CIT', 'CATA - CIT2', 'CATA - CIT6', 'CATA - CIT8']}

因此,我开发了这段代码,但是当我添加值时,它不起作用:所有id的值都相同。

with open("/data/myfile") as openfile:
        for line in openfile:
        for single_line in line.split('\\'):
            if line.startswith("ID"):
                 Dict[line] = None
            elif line.startswith("CATA"):
                for li in Dict:
                    Dict[li]=line
print Dict
一月

您可以使用itertools.groupby()

from itertools import groupby
lst = ['ID - ISO', 'CATA - CIT', 'CATA - CIT2','ID - ISO6', 'CATA - CIT', 'CATA - CIT2', 'CATA - CIT6', 'CATA - CIT8']

result = {}
for k,v in groupby(lst, lambda x: x.startswith('ID')):
    if k:
        key = next(v)
    else:
        result[key] = list(v)

print(result)

哪个会产生

{
 'ID - ISO': ['CATA - CIT', 'CATA - CIT2'], 
 'ID - ISO6': ['CATA - CIT', 'CATA - CIT2', 'CATA - CIT6', 'CATA - CIT8']
}

此外,不叫内建类型后,你的变量(listdicttuple等) -你有效地遮蔽的功能,如果你做的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将字符串转换为字典或列表?

如何将字符串转换为字典列表

如何将列表作为字符串从API转换为字符串列表

如何将字符串转换为字符串列表?

Ansible:如何将字符串列表转换为字典列表

如何将字符串列表转换为字典列表?

如何将字符串列表字典转换为列表

如何将字符串列表转换为LinkedHashMap?

将字符串转换为字符串列表

如何将字符串列表中的元素分组并将其转换为字典?

如何将包含字符串列表(内部列表)的对象列表转换为字符串列表

如何将字符串转换为字符列表?

将字符串列表转换为字典

Python 2.7将字符串列表转换为字典

PYthon - 将字符串列表转换为嵌套的字符串列表,其中每个列表包含每个字符串的元素

如何将字符串列表转换为列表列表

如何将列表转换为字符串?

如何将字符串转换为数组列表

如何将字符串转换为列表(Android)?

如何将字符串转换为列表?12345

如何将列表元素转换为字符串?

如何将数字列表转换为字符串?

如何将列表转换为字符串?

如何将字符串转换为数字列表

如何将列表转换为字符串

如何将字符串转换为列表?

ValueError: 无法将字符串转换为浮点数---如何将字符串列表的列表转换为 numpy 数组类型浮点数?

如何将包含字典列表的字符串转换为Python对象?

如何将字典列表的值转换为字符串?