我有一个列表列表,其中内部列表的成员是由逗号分隔的单个字符串。我试图定义一个迭代内部列表并执行连接函数的函数。
我有一个列表,例如[['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
获得所需的输出。我想用我定义的函数获得相同的输出。
答案 0 :(得分: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]
由于您似乎希望每个字符串都在其自己的单元素列表中(对我来说没有那么大意义),您可以将连接的结果放在额外的括号中以创建额外的列表。所以在详细函数中,你会这样做:
new_list.append([sep.join(i)])
或者使用具有列表推导的解决方案,您可以
return [[''.join(x)] for x in old_list]