列表为值

时间:2017-10-31 16:18:58

标签: python dictionary

鉴于字典,

dict={"1":"2" , "2":"4"}

是否可以创建另一个字典,其中包含第一个字典值的列表作为值?

例如,在这种情况下,输出是

dictionary={"1":["4","2"],"2":["4"]}

因为在第一个词典中“1”是“2”的键,同时是“4”的键。所以我们在新词典中。

"1":["4","2"]

虽然"2"4的关键,但这不是另一个值的关键。

我该如何实现?

3 个答案:

答案 0 :(得分:0)

试试这个

>>> dict1={"1":"2" , "2":"4"}
>>> for i in dict1.keys():
    appendvalue=[dict1.get(i)]
    if dict1.get(i) in dict1.keys():
        appendvalue.append(dict1.get(dict1.get(i)))
    dict1[i]=appendvalue


>>> dict1
{'1': ['2', '4'], '2': ['4']}
>>> 

答案 1 :(得分:0)

这是一个糟糕的问题,所以我只会给你一个跳跃点。

dict1={"1":"2" , "2":"4", "4": "3"}

def list_maker(dictionary, key, list):
    if key not in dictionary:
        return [key] + list[:-1]
    else:
        return list_maker(dictionary, dictionary[key], [key] + list)

print(list_maker(dict1, "1", []))

看看它给你带来了什么,并从那里开始工作

答案 2 :(得分:0)

您可以尝试这样的事情:

dict={"1":"2" , "2":"4"}
final_dict={}
for index,item in dict.items():
    final_dict[index]=[item]
    if item in dict.keys():
        final_dict[index].extend([dict[item]])
print(final_dict)

输出:

{'2': ['4'], '1': ['2', '4']}