如何将列表列表拆分为字典键/值对?

时间:2019-05-10 12:24:18

标签: python list dictionary

我有以下list

is_censored = [[True, True], [False, True], [False, False]]

我想将其放入具有等于dictionaryis_censored_1 = [True, True]is_censored_2=[False, True]的键/值的is_censored_3=[False, False]中。

这可以通过Python实现吗?

到目前为止,我有这个:

data = dict()
for i, value in enumerate(is_censored):
    data['_'.join(['is_censored', str(i + 1)])] = value

产生正确的结果:

data = {'is_censored_1': [True, True], 'is_censored_2': [False, True], 'is_censored_3': [False, False]}

但并不吸引眼球。

3 个答案:

答案 0 :(得分:6)

您可以对enumerate使用字典理解来格式化f-strings

{f'is_censored_{i+1}': l for i,l in enumerate(is_censored)}

{'is_censored_1': [True, True],
 'is_censored_2': [False, True],
 'is_censored_3': [False, False]}

注意:对于python版本< 3.6,请像在{dev3的answer中一样使用string.format()。您可以查看docs了解更多详细信息

答案 1 :(得分:2)

您可以为此使用字典理解,在其中您可以使用is_censored获得列表enumerate的索引和项,然后相应地创建键值对!

is_censored = [[True, True], [False, True], [False, False]]

res = {'is_censored_{}'.format(idx+1):item for idx, item in enumerate(is_censored)}
print(res)

输出将为

{'is_censored_1': [True, True], 'is_censored_2': [False, True], 'is_censored_3': [False, False]}

答案 2 :(得分:1)

is_censored = [[True, True], [False, True], [False, False]]

res ={'is_censored_{}'.format(i+1):is_censored[i] for i in range(len(is_censored))}

输出

{'is_censored_1': [True, True],
 'is_censored_2': [False, True],
 'is_censored_3': [False, False]}