-3

我有一个列表列表,其中内部列表的成员是由逗号分隔的单个字符的字符串。我正在尝试定义一个将遍历内部列表并执行连接函数的函数。我有一个清单,例如[['E', 'F', 'J', 'A',], ['S', 'D', 'G', 'K], ['A', 'S', 'R', 'J',], ['H', 'E', 'A', 'N']]

我的目标列表是 ==>[['EFJA'], ['SDGK'], ['ASRJ'], ['HEAN']] 我使用了以下

def newlist(old_list):
    for i in old_list:
        sep = ('')
        newlist = sep.join(i)
        return newlist

通过运行该函数,我获得了一个字符串,该字符串是仅对列表列表中的第一个内部列表执行连接的结果,即'EFJA' 但直接使用 ide 我获得了这个

d = [['E', 'F', 'J', 'A',], ['S', 'D', 'G', 'K'], ['A', 'S', 'R', 'J',], ['H', 'E', 'A', 'N']]
sep = ('')
for i in d:
    new = sep.join(i)
    print(new)

输出

EFJA
SDGK
ASRJ
HEAN

获得所需的输出。我想用我定义的函数获得相同的输出。

4

1 回答 1

3

您应该将所有个人结果放入另一个列表中,然后仅在完成后返回最终列表:

def newlist(old_list):
    new_list = []
    for i in old_list:
        sep = ''
        new_list.append(sep.join(i))
    return new_list

或者您可以将其缩短为:

def newlist(old_list):
    return [''.join(x) for x in old_list]

由于您似乎希望每个字符串都在其自己的单元素列表中(tbh。这对我来说没有多大意义),您可以将连接的结果放在额外的括号中以创建额外的列表。所以在详细函数中,你会这样做:

new_list.append([sep.join(i)])

或者使用带有列表理解的解决方案,你会做

return [[''.join(x)] for x in old_list]
于 2013-10-11T11:11:09.770 回答