Skip to main content
 首页 » 编程设计

python之更高效/时尚的代码来转换数据结构

2025年05月04日12birdshome

你知道转换这个列表的更好/更快的解决方案吗

['foo1:bar1', 'foo2:bar2', 'foo3:bar3'] 

进入下面的字典

{'col2': ['bar1', 'bar2', 'bar3'], 'col1': ['foo1', 'foo2', 'foo3']} 

由于两个 for 循环,当前版本看起来有点奇怪并且可能很慢。

tuples = ['foo1:bar1', 'foo2:bar2', 'foo3:bar3'] 
tuples_separated = [one.split(':') for one in tuples] 
tidied = {'col1': [], 'col2': []} 
for one in tuples_separated: 
    tidied['col1'].append(one[0]) 
    tidied['col2'].append(one[1]) 

请您参考如下方法:

使用zip 压缩项目?

In [15]: d={} 
    ...: vals=zip(*(i.split(':') for i in tuples)) 
    ...: d['col1'], d['col2']=vals 
    ...: print d 
{'col2': ('bar1', 'bar2', 'bar3'), 'col1': ('foo1', 'foo2', 'foo3')}