简体   繁体   中英

Add Key, Value pair to new dict

I have an existing list of Key, Value pairs in my current dictionary called total_list . I want to check my list to see if the length of each Key == 1 in total_list , I want to add that key and its value pair to a new dictionary. This is the code that I've come up with.

total_list = {104370544: [31203.7, 01234], 106813775: [187500.0], 106842625: [60349.8]}

diff_so = defaultdict(list)
for key, val in total_list:
    if len(total_list[key]) == 1:
        diff_so[key].append[val]
        total_list.pop[key]

But I keep getting an error with

"cannot unpack non-iterable int object".

I was wondering if there's anyway for me to fix this code for it to run properly?

Assuming that the OP means a string of one character by length = 1 of the key.


You can do this:

total_list = [{'abc':"1", 'bg':"7", 'a':"7"}]
new_dict = {}
for i in total_list:
    for k,v in i.items():
        if len(k) == 1:
            new_dict[str(k)] = v
        else:
            pass
print(new_dict)

Output:

{'a': '7'}

After edit:

total_list = {104370544: [31203.7, 1234], 106813775: [187500.0], 106842625: [60349.8]}

new_dict = {}
for k,v in total_list.items():
    if len(v) == 1:
        new_dict[k] = v
    else:
        pass

Output:

{'106842625': [60349.8], '106813775': [187500.0]}

You just need a dictionary comprehension

diff_so = {k: v for k, v in total_list.items() if len(v) == 1}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM