Найти - Пользователи
Полная версия: как превратить список в string, когда в одном списке деклька списков?
Начало » Python для новичков » как превратить список в string, когда в одном списке деклька списков?
1 2
Chernetska Olga
как превратить список в string, когда в одном списке деклька списков?
pasaranax
что такое “деклька списков”? :)
если имеется ввиду многомерный массив, то на примере двумерного вот так:
l = [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"]]
s = "".join(["".join(i) for i in l])
для большей вложенности лучше написать рекурсивную функцию
Zubchick
или использовать эту функцию и сджойнить результат.
FLeX
pasaranax
>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> s = ''.join([''.join('%s' % i) for i in l])
>>> s
'[1, 2, 3][4, 5, 6][7, 8, 9]'
Тогда уж короче будет:
>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> s = ''.join('%s' % i for i in l)
>>> s
'[1, 2, 3][4, 5, 6][7, 8, 9]'
Ну, с поправкой на ‘%s’, конечно.
Вот такое решение будет в самый раз, думаю:
>>> import re
>>> re.sub(r"[^\d]", "", str(l))
'123456789'
pasaranax
Список состоит из строк, а у тебя инты, и поправка на ‘%s’ портит весь мой код, попробуй выполнить его в оригинале. С регуляркой ты ваще отжог =D я цифры написал чисто для наглядности.
FLeX
попробуй выполнить его в оригинале.
Пардон, работает.
С регуляркой ты ваще отжог big_smile я цифры написал чисто для наглядности.
Да хоть буквы, хоть что:
>>> l = [["asdasd"]["qwwqeqwe", "asdasdaqweq"]]
>>> re.sub(r"\W", "", str(l))
'asdasdqwwqeqweasdasdaqweq'
UPD:
Понял, что можно даже короче регулярку записать
PooH
FLeX
Понял, что можно даже короче регулярку записать
Вы хоть понимаете что такой подход это гланды перанально удалять? Нет?! Тогда прошу:
In [13]: l = [["asdasd 111(@#)"],["qw3333#########$$$$$$$$$wqeqwe", "asdas%%%%%%%%%daqweq"]]

In [14]: re.sub(r"\W", "", str(l))
Out[14]: 'asdasd111qw3333wqeqweasdasdaqweq'
FLeX
PooH
Вы хоть понимаете, что регулярку можно изменить за секунды, чтобы он и спецсимволы воспринимал?
К тому же, не вижу причин для такой скурпулезной придирчивости к моему варианту. Ну, разве что померяться… кодом, пардон
PooH
FLeX
PooH
Вы хоть понимаете, что регулярку можно изменить за секунды, чтобы он и спецсимволы воспринимал?
К тому же, не вижу причин для такой скурпулезной придирчивости к моему варианту. Ну, разве что померяться… кодом, пардон
Эхе-хе-хе… Была у программиста проблема и для ее решения он воспользовался регуляркой, теперь у него две проблемы.
Так вот о спецсимволах, не забудьте, пожалуйста, обработать такие символы как ",“'=”.
Кодом я мериться не собираюсь, взрослые люди, можно и чем иным помериться ;) Но вот ИМХО гораздо проще обойти рекурсивно список и собрать строки, чем слить все в кашу и пытаться выбрать из нее строки.
FLeX
PooH
Прочитав ваше сообщение, хочется начать сообщение со смайлика, что я и делаю: ^^.
Я предложил свой вариант, вы - свой. Какой из них подойдет топикстартеру решать ему самому. Я лишь хотел обратить его внимание на неочевидный и довольно забавный способ решения проблемы.

И, раз уж все
взрослые люди
То негоже меряться чем-либо, по-моему. Надеюсь, что на сабж поста ответ был найден, засим хочу дискуссию окончить (ну, или хотя бы во флуд ее перенести).

Спасибо за внимание. /thread
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB