Список списков в одну строку - PullRequest
0 голосов
/ 21 ноября 2018

Предположим, у меня есть список списков, скажем

A = [[1,1,1,1],[2,2,2,2]]

, и я хочу создать из него две строки:

'1111'

'2222'

Как бы мы сделали это в Python?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Это довольно легко сделать, используя join и понимание списка.

A = [[1,1,1,1],[2,2,2,2]]
a_strings = [''.join(map(str, sub_list)) for sublist in A]

Смотрите, join() берет список строк и делает строку, объединяющую все подстроки ипонимание списка, которое я использовал, просто просматривает их все.Выше я соединил 2 вместе.


С другой стороны,

map() фактически считается более эффективным (когда не используется лямбда .. и т. д.) и для НЕКОТОРЫХ более читабельно.Я просто добавлю подход, используя карту вместо понимания.

a_strings = map(''.join(), map(str, A))

Это сначала берет внутреннюю карту и делает все int s> str s, затем join s все str s вместе для каждого подсписка.

Надеюсь, это делает вещи немного более удобными для вас, каждый метод близок к эквивалентному, так что в этом случае вы можете рассмотреть их выбор стиля.

0 голосов
/ 21 ноября 2018

Может быть list comprehension:

>>> A = [[1,1,1,1],[2,2,2,2]]
>>> l=[''.join(map(str,i)) for i in A]
>>> l
['1111', '2222']
>>> 

Теперь вы получили это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...