Получить персонажей из списка списков

У меня есть этот пример:

example=[["hello i am adolf","hi my name is "],["this is a test","i like to play"]]

Итак, я хочу получить следующий массив:

chars2=[['h', 'e', 'l', 'l', 'o', ' ', 'i', ' ', 'a', 'm', ' ', 'a', 'd', 'o', 'l', 'f','h', 'i', ' ', 'm', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's'],['t', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', 'i', ' ', 'l', 'i', 'k', 'e', ' ', 't', 'o', ' ', 'p', 'l', 'a', 'y']]

Я попробовал это:

chars2=[]
for list in example:
    for string in list:
        chars2.extend(string)

но я получаю следующее:

['h', 'e', 'l', 'l', 'o', ' ', 'i', ' ', 'a', 'm', ' ', 'a', 'd', 'o', 'l', 'f', 'h', 'i', ' ', 'm', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' ', 't', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', 'i', ' ', 'l', 'i', 'k', 'e', ' ', 't', 'o', ' ', 'p', 'l', 'a', 'y']

2 ответа

Решение

Для каждого list в примере вам нужно добавить еще один список внутри chars2 В настоящее время вы просто расширяете chars2 непосредственно каждым персонажем.

Пример -

chars2=[]
for list in example:
    a = []
    chars2.append(a)
    for string in list:
        a.extend(string)

Пример / Демо -

>>> example=[["hello i am adolf","hi my name is "],["this is a test","i like to play"]]
>>> chars2=[]
>>> for list in example:
...     a = []
...     chars2.append(a)
...     for string in list:
...         a.extend(string)
...
>>> chars2
[['h', 'e', 'l', 'l', 'o', ' ', 'i', ' ', 'a', 'm', ' ', 'a', 'd', 'o', 'l', 'f', 'h', 'i', ' ', 'm', 'y', ' ', 'n', 'a', 'm', 'e', ' ', 'i', 's', ' '], ['t', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', 'i', ' ', 'l', 'i', 'k', 'e', ' ', 't', 'o', ' ', 'p', 'l', 'a', 'y']]

Попробуйте использовать простое понимание списка

example = [list(item) for sub in example for item in sub]

Другие вопросы по тегам