在每个循环中添加任意数量的列

2024-05-14 19:28:16 发布

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

示例:

dict1 = ({'ROADS' : ['STREETNAME', 'LEFTFROM', 'LEFTTO', 'RIGHTFROM', 'RIGHTTO'],
            'ITA' :  ['I.ID_BOUND', 'I.BOUND_IDQ']}) 

注意

ROADS,ITA是文件 其余的是他们的专栏

我想对每个文件中的所有列做一个类似concat的加法。 问题是每个文件的列数不同

如何让它这样做

更新

说明:

如何使它添加字典中可能存在的任意数量的列? 下面的示例尝试将每个列显式地引用为v[0],以此类推 我想做的是,不管列的数目是多少,所以只需要独立于列的数目

我试过:

for k,v in dict1.items():
    newfield = v[0] + v[1]

Tags: 文件id示例bound数目roadsita专栏
2条回答

或许这是可行的:

newfields = {}

for k,v in dict1.items():
    newfields[k] = ''.join(v)

使用字典更简单:

new_dict = {key: ','.join(value) for key, value in dict1.items()}

结果: {'ROADS': 'STREETNAME,LEFTFROM,LEFTTO,RIGHTFROM,RIGHTTO', 'ITA': 'I.ID_BOUND,I.BOUND_IDQ'}

或者您可以替换','.join中的,来使用任何您喜欢的分隔符

根据解释更新:

list_fields = [''.join(value) for key, value in dict1.items()]

结果:['STREETNAMELEFTFROMLEFTTORIGHTFROMRIGHTTO', 'I.ID_BOUNDI.BOUND_IDQ']

仍然不确定你想要达到什么目的

列表和字典的理解通常比for循环快

相关问题 更多 >

    热门问题