将列表值转换为字典作为键和值

时间:2020-11-09 19:44:38

标签: python list dictionary

假设有一个列表:['1604780184', '10', '1604780194', '0', '1604780319', '99', '1604780320', '0']

您需要获得类似{'1604780184': '10', '1604780194': '0', '1604780319': '99', '1604780320': '0'}

的结果

现在我有:

rline = ['1604780184', '10', '1604780194', '0', '1604780319', '99', '1604780320', '0']
total = {}
print(f"My list: {rline}")

while rline:
    total[rline[0:2][0]] = rline[0:2][1]
    del rline[0:2]

print(f"Dictionary: {total}")

请提出更好的建议。谢谢。

2 个答案:

答案 0 :(得分:6)

最简洁(也可能是最好)的方式可能是:

type LocalizedTripJustTitle = LocalizedType<Trip, "title">
/* type LocalizedTripJustTitle = {
    id: number;
    title_en: string;
    title_de: string;
    title_el: string;
    title_fr: string;
    description: string;
    featured: boolean;
} */

它的实际作用是利用列表遵循的某些模式和一些内置函数!由于每个偶数索引都是一个将要存在的值,而奇数索引是一个将成为关键的键,因此更容易将它们分割和分离。然后,您可以使用result = dict(zip(lst[::2], lst[1::2])) 形成这些分隔值的集合,然后调用zip()构造函数从中取出字典!

答案 1 :(得分:3)

我不喜欢在迭代列表时更改列表。我更喜欢这样:

i = 0
while i < len(rline):
  total[rline[i]] = rline[i+1]
  i = i + 2

print(f"Dictionary: {total}")