У меня есть вложенный список, который выглядит следующим образом:
mylist = [['A;B', 'C'], ['D;E', 'F']]
Я бы хотел получить его в следующей форме:
[['A', 'B', 'C'], ['D', 'E', 'F']]
Я решил написать простое понимание списка, чтобы выполнить задачу:
>>> newlist = [item[0].split(';').append(item[1]) for item in mylist]
>>> newlist
[None, None]
После некоторых экспериментов я обнаружил, что ошибка была при попытке использовать append()
в анонимных списках:
>>> type(['A', 'B'])
<class 'list'>
>>> type(['A', 'B'].append('C'))
<class 'NoneType'>
Что похоже на гочу, учитывая, что вы можете делать такие вещи:
>>> 'abc'.upper()
'ABC'
Очевидно, что в большинстве случаев вы могли бы обойти это, связав ['A', 'B']
с переменной перед вызовом append()
, но как бы я сделал это внутри понимания списка? Кроме того, кто-нибудь может объяснить это не интуитивное поведение?