Skip to main content
 首页 » 编程设计

python之在 Python 2.7.2 中加入一系列嵌套列表的字符串

2025年05月04日21落叶无声

我有一系列列表,其中包含一个整数和一个包含多个字符串的嵌套列表。目标是将字符串连接成一个字符串。我已经使用适用于一个列表的代码完成了此操作。问题是当我尝试遍历一系列列表时出现错误:“TypeError:序列项 0:预期字符串,找到 int。”我试图将整数更改为字符串,忽略整数项并将代码定向到嵌套列表但没有成功。

系列示例:

    [19497, ['83', 'CLM']] 
    [19498, ['80', 'COS', 'PAN', '83', 'CLM']] 
    [19505, ['79', 'MXE', 'MXN', 'MXS']] 
    [19507, ['83', 'CLM', 'ECU']] 
    [19509, ['79', 'MXG', 'MXS', 'MXT', '80', 'BLZ', 'GUA', 'HON', 'NIC']] 

这适用于一个列表:

    >>> q = [48, ['40', 'ASS', 'EHM', 'IND', 'NEP', 'WHM', '41', 'MYA']] 
    >>> q[1] = " ".join(q[1]) 
    >>> q 
    [48, '40 ASS EHM IND NEP WHM 41 MYA'] 

这是我尝试进行迭代并得到类型错误的方法。

    def smush(q): 
        '''STILL IN PROGRESS: Trying to create single string in nested list.''' 
        for line in q: 
            q[1] = ' '.join(q[1]) 
        return q 

我觉得有一个我忽略的简单解决方案。建议?

感谢您提供的任何帮助。

请您参考如下方法:

你真的很接近:

def smush(lists): 
    for line in lists: 
        line[1] = ' '.join(line[1]) 
    return lists # optional, since this modifies the list in-place 

如果每个项目都是恰好两个元素的列表,您应该使用 tuples相反,像这样:

data = [     
    (19497, ['83', 'CLM']), 
    (19498, ['80', 'COS', 'PAN', '83', 'CLM']), 
    (19505, ['79', 'MXE', 'MXN', 'MXS']), 
    (19507, ['83', 'CLM', 'ECU']), 
    (19509, ['79', 'MXG', 'MXS', 'MXT', '80', 'BLZ', 'GUA', 'HON', 'NIC']), 
] 
 
dataInStringFormat = [(n, ''.join(l)) for n,l in data]