将一个列表中的元素转换为字典中的键和值

时间:2020-03-10 07:01:02

标签: python-3.x

我正在寻找一种将列表转换为字典的方法,如下所示。这可能吗?预先感谢。

list = [“ 1 / a”,“ 2 / b”,“ 3 / c”]

dict = {“ 1”:“ a”,“ 2”:“ b”,“ 3”:“ c”}

4 个答案:

答案 0 :(得分:2)

当然可以。

首先,您可以使用e.split("/")拆分列表的元素,这将给出一个列表,例如splitted = ["1", "a"]。 您可以将第一个元素分配给键,将第二个元素分配给值:

k = splitted[0]
v = splitted[1]

或另一种表达方式:

k,v = splitted

然后,您可以遍历列表以构建字典,因此,如果我们将其打包(您不应该调用列表list,因为list是一种类型并且已经存在标识符:

d = {}
for e in elements:
     k,v = e.split("/")
     d[k] = v

您还可以通过dict理解在一行中做到这一点:

d = {k:v for k,v in [e.split("/") for e in elements]}

答案 1 :(得分:0)

是的。

如果您想将所有内容都放在'/'之后(即第二个字符),则可以执行以下操作:

dict = {c[0]:c[2:] for c in list}

如果您想将所有内容放在'/'之后(但可能不是第二个字符),则可以执行以下操作:

dict = {c[0]:c.split('/')[1] for c in list}

这实际上取决于您的输入和想要的输出

答案 2 :(得分:0)

您可以这样做。

lista = ["1/a", "2/b", "3/c"]
new_dict = {}
for val in lista:    
    new_dict.update({val[0]:val[2]})
print(new_dict)

答案 3 :(得分:0)

尝试一下

list = ["1as/aasc", "2sa/bef", "3edc/cadeef"]
dict = {i.split('/')[0]:i.split('/')[1] for i in list}

答案将会

{'1as': 'aasc', '2sa': 'bef', '3edc': 'cadeef'}

我给出了另一个测试用例。希望这能回答您的问题。