Python Forum

Full Version: How to add list to dictionary?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hey, how would I add a nested list to a dictionary based on the dictionary key and list element. Say the dictionary represented the columns of a dataset and the list represented the rows, how can I add the corresponding row to column.

This is the dictionary:

{'NS BEAM': '', 'NS BEAM GALV': '', 'NS FRAME': '', 'NS FRAME GALV': '', 'NS FRAME 3-POST': '', 'NS FRAME CUT PINE': '', 'NS FRAME CUT': '', 'NS PURCHASED': '', 'NS FRAME CUT BEAM': '', 'NS FRAME CUT VRACK': '', 'STANDARD': '', 'STANDARD BEAM': '', 'STANDARD FRAME': '', 'STANDARD FRAME GALV': '', 'STANDARD GALV': '', 'STANDARD PURCHASED': '', 'STANDARD BEAM GALV': ''}
This is the nested list:

[['3623T', '3320BG', '4009HS', '4067G', '4051H', '4154H', '3108H', '3806A', '3200H', '4150T', '3997GH', '3208BT', '4009H', '4062GVN', '3529GG', '3589', '3413BG'], ['3625T', '3347BG', '4009TS', '3065HG', '4050H', '4155H', '3031TS', '3895T', '3318H', '4149T', '3995GH', '3352BH', '4009T', '4113GVN', '3735G', '3242', '3413G'], ['3442BH', '3352BG', '4014HS', '3018G', '4052H', '4147H', '3031TS', '3894H', '3318T', '4152T', '3926H', '3352BT', '4014H', '4064G', '3522GHD', '3590', ''], ['3319BH', '3383BG', '4013HS', '3108G', '4052T', '4146H', '3033T', '3894T', '3319H', '4151T', '3924H', '3201H', '4014T', '', '3995G', '3579H', ''], ['3320BH', '3320G', '4013HT', '3120G', '4058T', '', '', '3925H', '3202BH', '4158T', '3923H', '3201T', '4013H', '', '3998G', 'N3605BT', ''], ['3320BT', '3347G', '4039HS', '3031GN', '4054T', '', '', '3555H', '3202H', '3557T', '3739HD', '3203H', '4013T', '', '3603FG', '301', ''], ['3347BH', '3348G', '4039TS', '4065G', '4060T', '', '', '3994G', '3202BT', '4152TS', '3735HD', '3203T', '3019H', '', '3604FG', '3579HS', ''], ['3347BT', '3350G', '4040HS', '4114GVN', '4061T', '', '', '3980G', '3202T', '4153TS', '3924T', '3206H', '3005H', '', '3606FG', 'N3604B', ''], ['3442BCH', '3352G', '4069TS', '', '4085T', '', '', '3897T', '', '4153T', '3923T', '3206T', '3005T', '', '3605FG', 'N3605B', ''], ['3348BH', '3383G', '4066HS', '', '4086T', '', '', '3898T', '', '4159H', '3926T', '3207H', '4039H', '', '3609FG', '', ''], ['3348BT', '3382G', '4073TS', '', '4085TS', '', '', '3553H', '', '', '3524G', '3207T', '4039T', '', '3609FG', '', ''], ['3442BDH', '3416G', '4073HS', '', '3188', '', '', '3553T', '', '', '', '3212H', '4068H', '', '3922', '', ''], ['3350BH', '3410G', '3078TS', '', '', '', '', '3550H', '', '', '', '3208H', '4040T', '', '3586', '', ''], ['3350BT', '3394G', '4099TS', '', '', '', '', 'N3603B', '', '', '', '3208T', '4040H', '', '', '', ''], ['3454BH', '3348BG', '4062HS', '', '', '', '', 'N3603BT', '', '', '', '3320H', '3035T', '', '', '', ''], ['3454BT', '3380G', '4062TS', '', '', '', '', 'N3604BT', '', '', '', '3320T', '4070T', '', '', '', ''], ['3383BH', '', '4103HS', '', '', '', '', 'N3606B', '', '', '', '3347H', '4069H', '', '', '', ''], ['3383BT', '', '4103TS', '', '', '', '', '3556T', '', '', '', '3347T', '4069T', '', '', '', ''], ['3382BH', '', '4129HS', '', '', '', '', '3806F', '', '', '', '3348H', '4066H', '', '', '', ''], ['3382BT', '', '4129TS', '', '', '', '', '3806', '', '', '', '3348T', '4066T', '', '', '', ''], ['3416BH', '', '4067HS', '', '', '', '', '3806G', '', '', '', '3352H', '4073H', '', '', '', ''], ['3420BH', '', '4133HS', '', '', '', '', '3925', '', '', '', '3352T', '4073T', '', '', '', ''], ['3437BH', '', '4133TS', '', '', '', '', '', '', '', '', '3383H', '4063H', '', '', '', ''], ['3438BH', '', '4065TS', '', '', '', '', '', '', '', '', '3383T', '3079H', '', '', '', ''], ['3438BT', '', '3031HS', '', '', '', '', '', '', '', '', '3382H', '3079T', '', '', '', ''], ['3442CH', '', '4063TS', '', '', '', '', '', '', '', '', '3382T', '3065H', '', '', '', ''], ['3442CT', '', '3018HS', '', '', '', '', '', '', '', '', '3420H', '3065T', '', '', '', ''], ['3349T', '', '3078HS', '', '', '', '', '', '', '', '', '3420T', '4074H', '', '', '', ''], ['3350H', '', '3125TS', '', '', '', '', '', '', '', '', '3201BH', '4099H', '', '', '', ''], ['3350T', '', '', '', '', '', '', '', '', '', '', '3201BT', '4099T', '', '', '', ''], ['3454H', '', '', '', '', '', '', '', '', '', '', '3203BH', '4062H', '', '', '', ''], ['3454T', '', '', '', '', '', '', '', '', '', '', '3203BT', '4062T', '', '', '', ''], ['3391H', '', '', '', '', '', '', '', '', '', '', '3206BH', '4103H', '', '', '', ''], ['3391T', '', '', '', '', '', '', '', '', '', '', '3206BT', '4103T', '', '', '', ''], ['3378H', '', '', '', '', '', '', '', '', '', '', '3207BH', '4064H', '', '', '', ''], ['3378T', '', '', '', '', '', '', '', '', '', '', '3207BT', '3109H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3212BH', '3109T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3212BT', '3095H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3208BH', '3095T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3308T', '4113T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3308H', '4129H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4129T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4067H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4067T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4133H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4133T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4065H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4065T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '3125T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4063T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4064T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4112T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4117T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4075H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4041H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4041T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '3127T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4075T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4070H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4102T', '', '', '', '']]
Not sure if I understand. Is this what you want?

mydict = {'NS BEAM': '', 'NS BEAM GALV': '', 'NS FRAME': '', 'NS FRAME GALV': '', 'NS FRAME 3-POST': '', 'NS FRAME CUT PINE': '', 'NS FRAME CUT': '', 'NS PURCHASED': '', 'NS FRAME CUT BEAM': '', 'NS FRAME CUT VRACK': '', 'STANDARD': '', 'STANDARD BEAM': '', 'STANDARD FRAME': '', 'STANDARD FRAME GALV': '', 'STANDARD GALV': '', 'STANDARD PURCHASED': '', 'STANDARD BEAM GALV': ''}
mylist = [['3623T', '3320BG', '4009HS', '4067G', '4051H', '4154H', '3108H', '3806A', '3200H', '4150T', '3997GH', '3208BT', '4009H', '4062GVN', '3529GG', '3589', '3413BG'], ['3625T', '3347BG', '4009TS', '3065HG', '4050H', '4155H', '3031TS', '3895T', '3318H', '4149T', '3995GH', '3352BH', '4009T', '4113GVN', '3735G', '3242', '3413G'], ['3442BH', '3352BG', '4014HS', '3018G', '4052H', '4147H', '3031TS', '3894H', '3318T', '4152T', '3926H', '3352BT', '4014H', '4064G', '3522GHD', '3590', ''], ['3319BH', '3383BG', '4013HS', '3108G', '4052T', '4146H', '3033T', '3894T', '3319H', '4151T', '3924H', '3201H', '4014T', '', '3995G', '3579H', ''], ['3320BH', '3320G', '4013HT', '3120G', '4058T', '', '', '3925H', '3202BH', '4158T', '3923H', '3201T', '4013H', '', '3998G', 'N3605BT', ''], ['3320BT', '3347G', '4039HS', '3031GN', '4054T', '', '', '3555H', '3202H', '3557T', '3739HD', '3203H', '4013T', '', '3603FG', '301', ''], ['3347BH', '3348G', '4039TS', '4065G', '4060T', '', '', '3994G', '3202BT', '4152TS', '3735HD', '3203T', '3019H', '', '3604FG', '3579HS', ''], ['3347BT', '3350G', '4040HS', '4114GVN', '4061T', '', '', '3980G', '3202T', '4153TS', '3924T', '3206H', '3005H', '', '3606FG', 'N3604B', ''], ['3442BCH', '3352G', '4069TS', '', '4085T', '', '', '3897T', '', '4153T', '3923T', '3206T', '3005T', '', '3605FG', 'N3605B', ''], ['3348BH', '3383G', '4066HS', '', '4086T', '', '', '3898T', '', '4159H', '3926T', '3207H', '4039H', '', '3609FG', '', ''], ['3348BT', '3382G', '4073TS', '', '4085TS', '', '', '3553H', '', '', '3524G', '3207T', '4039T', '', '3609FG', '', ''], ['3442BDH', '3416G', '4073HS', '', '3188', '', '', '3553T', '', '', '', '3212H', '4068H', '', '3922', '', ''], ['3350BH', '3410G', '3078TS', '', '', '', '', '3550H', '', '', '', '3208H', '4040T', '', '3586', '', ''], ['3350BT', '3394G', '4099TS', '', '', '', '', 'N3603B', '', '', '', '3208T', '4040H', '', '', '', ''], ['3454BH', '3348BG', '4062HS', '', '', '', '', 'N3603BT', '', '', '', '3320H', '3035T', '', '', '', ''], ['3454BT', '3380G', '4062TS', '', '', '', '', 'N3604BT', '', '', '', '3320T', '4070T', '', '', '', ''], ['3383BH', '', '4103HS', '', '', '', '', 'N3606B', '', '', '', '3347H', '4069H', '', '', '', ''], ['3383BT', '', '4103TS', '', '', '', '', '3556T', '', '', '', '3347T', '4069T', '', '', '', ''], ['3382BH', '', '4129HS', '', '', '', '', '3806F', '', '', '', '3348H', '4066H', '', '', '', ''], ['3382BT', '', '4129TS', '', '', '', '', '3806', '', '', '', '3348T', '4066T', '', '', '', ''], ['3416BH', '', '4067HS', '', '', '', '', '3806G', '', '', '', '3352H', '4073H', '', '', '', ''], ['3420BH', '', '4133HS', '', '', '', '', '3925', '', '', '', '3352T', '4073T', '', '', '', ''], ['3437BH', '', '4133TS', '', '', '', '', '', '', '', '', '3383H', '4063H', '', '', '', ''], ['3438BH', '', '4065TS', '', '', '', '', '', '', '', '', '3383T', '3079H', '', '', '', ''], ['3438BT', '', '3031HS', '', '', '', '', '', '', '', '', '3382H', '3079T', '', '', '', ''], ['3442CH', '', '4063TS', '', '', '', '', '', '', '', '', '3382T', '3065H', '', '', '', ''], ['3442CT', '', '3018HS', '', '', '', '', '', '', '', '', '3420H', '3065T', '', '', '', ''], ['3349T', '', '3078HS', '', '', '', '', '', '', '', '', '3420T', '4074H', '', '', '', ''], ['3350H', '', '3125TS', '', '', '', '', '', '', '', '', '3201BH', '4099H', '', '', '', ''], ['3350T', '', '', '', '', '', '', '', '', '', '', '3201BT', '4099T', '', '', '', ''], ['3454H', '', '', '', '', '', '', '', '', '', '', '3203BH', '4062H', '', '', '', ''], ['3454T', '', '', '', '', '', '', '', '', '', '', '3203BT', '4062T', '', '', '', ''], ['3391H', '', '', '', '', '', '', '', '', '', '', '3206BH', '4103H', '', '', '', ''], ['3391T', '', '', '', '', '', '', '', '', '', '', '3206BT', '4103T', '', '', '', ''], ['3378H', '', '', '', '', '', '', '', '', '', '', '3207BH', '4064H', '', '', '', ''], ['3378T', '', '', '', '', '', '', '', '', '', '', '3207BT', '3109H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3212BH', '3109T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3212BT', '3095H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3208BH', '3095T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3308T', '4113T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '3308H', '4129H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4129T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4067H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4067T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4133H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4133T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4065H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4065T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '3125T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4063T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4064T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4112T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4117T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4075H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4041H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4041T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '3127T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4075T', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4070H', '', '', '', ''], ['', '', '', '', '', '', '', '', '', '', '', '', '4102T', '', '', '', '']]

newdict = dict(zip(mydict, mylist))

for key, val in newdict.items():
    print(f'{key}: {val}')
output:

Output:
NS BEAM: ['3623T', '3320BG', '4009HS', '4067G', '4051H', '4154H', '3108H', '3806A', '3200H', '4150T', '3997GH', '3208BT', '4009H', '4062GVN', '3529GG', '3589', '3413BG'] NS BEAM GALV: ['3625T', '3347BG', '4009TS', '3065HG', '4050H', '4155H', '3031TS', '3895T', '3318H', '4149T', '3995GH', '3352BH', '4009T', '4113GVN', '3735G', '3242', '3413G'] NS FRAME: ['3442BH', '3352BG', '4014HS', '3018G', '4052H', '4147H', '3031TS', '3894H', '3318T', '4152T', '3926H', '3352BT', '4014H', '4064G', '3522GHD', '3590', ''] NS FRAME GALV: ['3319BH', '3383BG', '4013HS', '3108G', '4052T', '4146H', '3033T', '3894T', '3319H', '4151T', '3924H', '3201H', '4014T', '', '3995G', '3579H', ''] NS FRAME 3-POST: ['3320BH', '3320G', '4013HT', '3120G', '4058T', '', '', '3925H', '3202BH', '4158T', '3923H', '3201T', '4013H', '', '3998G', 'N3605BT', ''] NS FRAME CUT PINE: ['3320BT', '3347G', '4039HS', '3031GN', '4054T', '', '', '3555H', '3202H', '3557T', '3739HD', '3203H', '4013T', '', '3603FG', '301', ''] NS FRAME CUT: ['3347BH', '3348G', '4039TS', '4065G', '4060T', '', '', '3994G', '3202BT', '4152TS', '3735HD', '3203T', '3019H', '', '3604FG', '3579HS', ''] NS PURCHASED: ['3347BT', '3350G', '4040HS', '4114GVN', '4061T', '', '', '3980G', '3202T', '4153TS', '3924T', '3206H', '3005H', '', '3606FG', 'N3604B', ''] NS FRAME CUT BEAM: ['3442BCH', '3352G', '4069TS', '', '4085T', '', '', '3897T', '', '4153T', '3923T', '3206T', '3005T', '', '3605FG', 'N3605B', ''] NS FRAME CUT VRACK: ['3348BH', '3383G', '4066HS', '', '4086T', '', '', '3898T', '', '4159H', '3926T', '3207H', '4039H', '', '3609FG', '', ''] STANDARD: ['3348BT', '3382G', '4073TS', '', '4085TS', '', '', '3553H', '', '', '3524G', '3207T', '4039T', '', '3609FG', '', ''] STANDARD BEAM: ['3442BDH', '3416G', '4073HS', '', '3188', '', '', '3553T', '', '', '', '3212H', '4068H', '', '3922', '', ''] STANDARD FRAME: ['3350BH', '3410G', '3078TS', '', '', '', '', '3550H', '', '', '', '3208H', '4040T', '', '3586', '', ''] STANDARD FRAME GALV: ['3350BT', '3394G', '4099TS', '', '', '', '', 'N3603B', '', '', '', '3208T', '4040H', '', '', '', ''] STANDARD GALV: ['3454BH', '3348BG', '4062HS', '', '', '', '', 'N3603BT', '', '', '', '3320H', '3035T', '', '', '', ''] STANDARD PURCHASED: ['3454BT', '3380G', '4062TS', '', '', '', '', 'N3604BT', '', '', '', '3320T', '4070T', '', '', '', ''] STANDARD BEAM GALV: ['3383BH', '', '4103HS', '', '', '', '', 'N3606B', '', '', '', '3347H', '4069H', '', '', '', '']
Do you want a dictionary of lists or a list of dictionaries? menator01 makes a dictionary of lists. This makes a list of dictionaries:
# Dictionary and nested list edited for brevity
the_dictionary = {
    "NS BEAM": "",
    "NS BEAM GALV": "",
    "NS FRAME": "",
    "NS FRAME GALV": "",
    "NS FRAME 3-POST": "",
}
the_nested_list = [
    ["3623T", "3320BG", "4009HS", "4067G", "4051H"],
    ["3625T", "3347BG", "4009TS", "3065HG", "4050H"],
    [
        "3442BH",
        "3352BG",
        "4014HS",
        "3018G",
        "4052H",
    ],
]

columns = the_dictionary.keys()
newlist = [dict(zip(columns, row)) for row in the_nested_list]

print(*newlist, sep="\n")
Output:
{'NS BEAM': '3623T', 'NS BEAM GALV': '3320BG', 'NS FRAME': '4009HS', 'NS FRAME GALV': '4067G', 'NS FRAME 3-POST': '4051H'} {'NS BEAM': '3625T', 'NS BEAM GALV': '3347BG', 'NS FRAME': '4009TS', 'NS FRAME GALV': '3065HG', 'NS FRAME 3-POST': '4050H'} {'NS BEAM': '3442BH', 'NS BEAM GALV': '3352BG', 'NS FRAME': '4014HS', 'NS FRAME GALV': '3018G', 'NS FRAME 3-POST': '4052H'}
The easiest might be to make a pandas dataframe
import pandas as pd

the_dictionary = {
    "NS BEAM": "",
    "NS BEAM GALV": "",
    "NS FRAME": "",
    "NS FRAME GALV": "",
    "NS FRAME 3-POST": "",
}
the_nested_list = [
    ["3623T", "3320BG", "4009HS", "4067G", "4051H"],
    ["3625T", "3347BG", "4009TS", "3065HG", "4050H"],
    [
        "3442BH",
        "3352BG",
        "4014HS",
        "3018G",
        "4052H",
    ],
]

df = pd.DataFrame(the_nested_list, columns=the_dictionary)
print(df)
Output:
NS BEAM NS BEAM GALV NS FRAME NS FRAME GALV NS FRAME 3-POST 0 3623T 3320BG 4009HS 4067G 4051H 1 3625T 3347BG 4009TS 3065HG 4050H 2 3442BH 3352BG 4014HS 3018G 4052H
You can add a nested list to a dictionary by using the dictionary's key to represent the column and the list element to represent the row. You can use the following syntax to add a row to a column:
# Khởi tạo từ điển với một cột rỗng
my_dict = {}

# Khóa của từ điển đại diện cho cột
column_key = 'column_name'

# Danh sách đại diện cho hàng
row = [1, 'abc', True]

# Thêm hàng vào cột
if column_key not in my_dict:
    my_dict[column_key] = []
my_dict[column_key].append(row)
In this example, we start by initializing an empty dictionary my_dict. We represent the column of the dataset with the column_key key. Next, we initialize a list of rows representing the rows of the data set. Finally, we check if the column already exists in the dictionary. Otherwise, we create an empty list for that column. Then we add the row to the column list using the append() method.