字典的多个列表

2024-04-25 06:30:31 发布

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

我希望转换如下列表:

idx = ['id','m','x','y','z']
a = ['1, 1.0, 1.11, 1.11, 1.11']
b = ['2, 2.0, 2.22, 2.22, 2,22'] 
c = ['3, 3.0, 3.33, 3.33, 3.33']
d = ['4, 4.0, 4.44, 4.44, 4.44'] 
e = ['5, 5.0, 5.55, 5.55, 5.55']

输入字典,其中:

dictlist = {
    'id':[1,2,3,4,5],
    'm':[1.0,2.0,3.0,4.0,5.0],
    'x':[1.11,2.22,3.33,4.44,5.55],
    'y':[1.11,2.22,3.33,4.44,5.55],
    'z':[1.11,2.22,3.33,4.44,5.55]
}

但我希望能够对一组较长的列表执行此操作,每个列表>6个元素。所以我假设一个函数最好能够为idx列表中的元素len创建dict。你知道吗

**编辑: 针对g.d.d.c:

I had tried something like:

def make_dict(indx):
    data=dict()
    for item in xrange(0,len(indx)):
        data.update({a[item]:''})
    return data

data = make_dict(idx)

它的作用是:

{'id': '', 'm': '', 'x': '', 'y': '', 'z': ''}

但是,将每个值添加到字典中就成了一个问题。你知道吗


Tags: 函数id元素编辑列表datamakelen
3条回答

作为一个单一的理解

首先将列表{a,b,c,d,e,…}分组到一个列表列表中

dataset = [a,b,c,d,e]
idx = ['id','m','x','y','z']
d = { k: [v[i] for v in dataset] for i,k in enumerate(idx) }

最后一行通过使用dict键的值及其索引在idx上枚举来构建字典,以挑选每个数据样本的正确列。你知道吗

只要每个列表的长度与idx相同,那么不管字段的数量如何,理解都是有效的

result = {}
keys = idx
lists = [a, b, c, d, e]
for index, key in enumerate(keys):
    result[key] = []
    for l in lists:
        result[key].append(l[index])

你可以试试这个:

idx = ['id','m','x','y','z']
a = [1, 1.0, 1.11, 1.11, 1.11]
b = [2, 2.0, 2.22, 2.22, 2,22] 
c = [3, 3.0, 3.33, 3.33, 3.33]
d = [4, 4.0, 4.44, 4.44, 4.44] 
e = [5, 5.0, 5.55, 5.55, 5.55]


dictlist =  {x[0] : list(x[1:]) for x in zip(idx,a,b,c,d,e)}

print dictlist

相关问题 更多 >