将字符串列表转换为字典

Posted

技术标签:

【中文标题】将字符串列表转换为字典【英文标题】:Convert list of strings to dictionary 【发布时间】:2014-05-23 17:49:51 【问题描述】:

我有一个清单

['Tests run: 1', ' Failures: 0', ' Errors: 0']

我想把它转换成字典

'Tests run': 1, 'Failures': 0, 'Errors': 0

我该怎么做?

【问题讨论】:

【参考方案1】:

用途:

a = ['Tests run: 1', ' Failures: 0', ' Errors: 0']

d = 
for b in a:
    i = b.split(': ')
    d[i[0]] = i[1]

print d

返回:

' Failures': '0', 'Tests run': '1', ' Errors': '0'

如果你想要整数,改变赋值:

d[i[0]] = int(i[1])

这将给出:

' Failures': 0, 'Tests run': 1, ' Errors': 0

【讨论】:

【参考方案2】:

试试这个

In [35]: a = ['Tests run: 1', ' Failures: 0', ' Errors: 0']

In [36]: i.split(':')[0]: int(i.split(':')[1]) for i in a
Out[36]: 'Tests run': 1, ' Failures': 0, ' Errors': 0

In [37]:

【讨论】:

【参考方案3】:
a = ['Tests run: 1', ' Failures: 0', ' Errors: 0']
b = dict([i.split(': ') for i in a])
final = dict((k, int(v)) for k, v in b.items())  # or iteritems instead of items in Python 2
print(final)

结果

' Failures': 0, 'Tests run': 1, ' Errors': 0

【讨论】:

【参考方案4】:

假设你有一个干净的数据集的简单解决方案:

intconv = lambda x: (x[0], int(x[1]))

dict(intconv(i.split(': ')) for i in your_list)

这假定您没有重复项,并且其中没有其他冒号。

发生的情况是,您首先将字符串拆分为两个值的元组。您可以在此处使用生成器表达式执行此操作。您可以将其直接传递给 dict,因为 dict 知道如何处理长度为 2 的可迭代生成元组。

【讨论】:

【参考方案5】:
l = ['Tests run: 1', ' Failures: 0', ' Errors: 0']
d = dict([map(str.strip, i.split(':')) for i in l])
for key, value in d.items():
    d[key] = int(value)
print(d)

输出:

'Tests run': 1, 'Errors': 0, 'Failures': 0

【讨论】:

【参考方案6】:
>>> s = ['Tests run: 1', ' Failures: 0', ' Errors: 0']
>>> i.split(":")[0].strip():int(i.split(":")[1].strip()) for i in s
' Failures': 0, 'Tests run': 1, ' Errors': 0

【讨论】:

【参考方案7】:

遍历您的列表,并用冒号分隔。然后将第一个值赋给 dict 对象中的第二个值:

x = ['Tests run: 1', ' Failures: 0', ' Errors: 0']
y = 
for k in x:
    c = k.split(':')
    y[str(c[0]).replace(" ", "")] = str(c[-1]).replace(" ", "")

print(y)
#'Failures': '0', 'Tests run': '1', 'Errors': '0'

【讨论】:

以上是关于将字符串列表转换为字典的主要内容,如果未能解决你的问题,请参考以下文章

将字符串列表转换为字典

将字典列表转换为字符串

如何将 JSON 字典列表转换为 Snowflake 中的字符串列表?

Python 怎么将列表类字典组字符串转换为列表?

如何使用列表和字典将字符串转换为二进制代码

python中如何将字符串转换为字典