python列表分组

2024-06-26 13:38:52 发布

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

names = ['vol0','CCBU','ICBU','AliGroup',.....]
value_list=['$1','$2','$3','$4','$5','$6',.......]

我需要的结果是:

result = {vol0:['$1','$2'],CCBU:['$3','$4'],ICBU:['$5','$6'],.....}

Tags: namesvalueresultlistvol0icbuccbualigroup
2条回答

可能有更简单的方法,但是:

vals_per_name=2
result={}
for i in range(len(value_list)/vals_per_name):
    result[names[i]]=value_list[vals_per_name*i:vals_per_name*(i+1)]

你应该做你想做的。你知道吗

这是你能做到的一种方法

value_list=['$1','$2','$3','$4','$5','$6']
names = ['vol0','CCBU','ICBU','AliGroup']
it=iter(value_list)
result=dict((name,[it.next(),it.next()]) for name in names)
result
{'ICBU': ['$5', '$6'], 'vol0': ['$1', '$2'], 'CCBU': ['$3', '$4']}

注意***据我所知,您不想将值列表中的连续元素分组为字典的一个列表,字典的键是相同序列中的名称。iter将返回一个迭代器,您可以使用该迭代器对名称列表进行迭代。next方法从迭代列表中检索下一个元素。剩下的很简单,创建一个字典理解,关键字遍历名称,值列表由迭代器两次顺序迭代生成。你知道吗

相关问题 更多 >