如何在python中将列的多个值转换成字典?

2024-10-04 09:20:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如果只有一个值,那么它应该是以空值作为列表的键;如果有多个值,那么第一个值将是键,其余值将是字典中的值列表。你知道吗

Ex: Column
    ram
    sneha, vijay, harish
    deva
    babu, dominic

Expected o/p:
{
'ram':[],
'sneha': ['vijay', 'harish'],
'deva' : [],
'babu' : ['dominic']

}

Tags: 列表字典columnexramexpected空值vijay
3条回答

你可以这样做:

columns_list = [['ram'], ['sneha', 'vijay', 'harish'],
                ['deva'], ['babu', 'dominic']]

result = {item[0]: item[1:] for item in columns_list}

print(result)
# {'ram': [], 'sneha': ['vijay', 'harish'], 'deva': [], 'babu': ['dominic']}

如果输入是string,那么您可以这样做:

rows = '''ram
sneha, vijay, harish
deva
babu, dominic'''
columns_list = [row.split(',') for row in rows.split("\n")]
# if columns have space at begin and end then `strip` them
columns_list = tuple(map(lambda cols: [c.strip() for c in cols], columns_list))
print(columns_list)
# (['ram'], ['sneha', 'vijay', 'harish'], ['deva'], ['babu', 'dominic'])
result = {item[0]: item[1:] for item in columns_list}
print(result)
# {'ram': [], 'sneha': ['vijay', 'harish'], 'deva': [], 'babu': ['dominic']}

假设您的列数据是我描述的格式,下面的解决方案将给出预期的输出

dict = {}
cols = [['ram'],['sneha', 'vijay', 'harish'],['deva'],['babu', 'dominic']]
for row in cols:
    dict[row[0]] = [item for item in row[1:len(row)]]

您只需运行一个循环,一次选择一行,然后将该行的第0个索引设置为键,并将后面的值设置为列表中的值。你知道吗

可以这样做

col = [['ram'], ['sneha', 'vijay', 'harish'], ['deva'], ['babu', 'dominic']]

out = {}

for row in col:
    out[row[0]] = [x for x in row[1 : len(row)]]

print(out)

相关问题 更多 >