python — Объединить все элементы списка в строку (с разделителем)
Вопрос задан
Изменён 5 лет 2 месяца назад
Просмотрен 22k раз
Есть массив данных parameters типа string. Нужно пройтись в цикле по каждой строке в массиве и присвоить новому параметру значение строки. Есть следующий код:
for string in parameters: glob_param, glob_param1, glob_param2, glob_param3, glob_param4 = string full_data = ('%(glob_param)s %(glob_param1)s %(glob_param2)s %(glob_param3)s %(glob_param4)s' % {"glob_param": glob_param, "glob_param1": glob_param1, "glob_param2": glob_param2, "glob_param3": glob_param3, "glob_param4": glob_param4})
Проблема в том, что я каждый раз не знаю сколько параметров у меня будет в
, и соответственно сколько нужно glob_param
. Нужно в цикле определить необходимое количество и выполнить присваивание.
- python
- python-3.x
Пример:
parameters = ['parm1', 'parm2', 'parm3', 'parm4'] full_data = ' '.join(parameters) print(full_data)
результат:
parm1 parm2 parm3 parm4
UPDATE:
all_parameters = [['parm1', 'parm2', 'parm3', 'parm4'], ['parm21','parm22','parm23']] res = '' for parameters in all_parameters: res += ' ' + ' '.join(parameters) print(res)
parm1 parm2 parm3 parm4 parm21 parm22 parm235
Зарегистрируйтесь или войдите
Регистрация через Google Регистрация через Facebook Регистрация через почтуОтправить без регистрации
ПочтаНеобходима, но никому не показывается
Отправить без регистрации
ПочтаНеобходима, но никому не показывается
Преобразование списка символов в строку Python
перейти к содержанию
В этом посте мы обсудим, как преобразовать список символов в строку в Python.
Связанный пост:
Преобразование строки в список символов в Python
1. Присоединиться с пустым разделителем
join()
функция на пустой строке, т.е. ''.join(list)
.1 2 3 4 5 6 | if __name__ == ‘__main__’:
l = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’] s = ».join(l) print(s) # печатает «ABCDE»
|
Скачать Выполнить код
2. Использование
reduce()
функцияДругой вероятный способ преобразовать список символов в строку — уменьшить с помощью operator.
или же operator.concat
оператор. Ниже приведен простой пример, демонстрирующий его использование:
1 2 3 4 5 6 7 8 9 | import operator from functools import reduce
if __name__ == ‘__main__’:
l = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’] s = reduce(operator.add, l) # или используйте operator.concat print(s) # печатает «ABCDE»
|
Скачать Выполнить код
Вот еще один вариант, в котором используется пользовательская функция добавления:
1 2 3 4 5 6 7 8 9 10 11 | from functools import reduce
if __name__ == ‘__main__’:
def add(x, y): return x + y
l = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’] s = reduce(add, l) print(s) # печатает «ABCDE»
|
Скачать Выполнить код
В качестве альтернативы вы можете использовать лямбда-выражение писать небольшие функции.
2 3 4 5 6 7 8 9 | from functools import reduce
if __name__ == ‘__main__’:
l = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’] add = lambda x, y: x+y s = reduce(add, l) print(s) # печатает «ABCDE»
|
Скачать Выполнить код
3. Использование цикла for
Наивное решение состоит в том, чтобы перебирать список с помощью цикла и использовать +=
Оператор для объединения символов в строку по одному.
1 2 3 4 5 6 7 8 | if __name__ == ‘__main__’:
l = [‘A’, ‘B’, ‘C’, ‘D’, ‘E’] s = » for str in l: s += str print(s) # печатает «ABCDE»
|
Скачать Выполнить код
Это все о преобразовании списка символов в строку в Python.
Оценить этот пост
Средний рейтинг 5/5. Подсчет голосов: 5
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования 🙂
Python — преобразовать строку в массив
спросил
Изменено 5 месяцев назад
Просмотрено 62к раз
Как преобразовать следующую строку в массив с помощью Python (эта строка может содержать неопределенное количество элементов)?
'["Фу","Бар","Баз","Ву"]'
Это определенно строковое представление. type()
дал:
<класс 'str'>
Я понял.
заинтересовано = запрос.POST.get('заинтересовано')[1:-1].split(',') заинтересован = [] для интересующего элемента: Заинтересовано.Добавить(Элемент[1:-1])
Где request.POST.get('interestedIn')
дал '["Foo","Bar","Baz","Woo"]'
список строк «вещь».
- питон
- массивы
- строка
Вы можете сделать это
import ast list = '["Фу","Бар","Баз","Ву"]' список = ast.literal_eval (список) распечатать список2
Решение без пакетов
Вы можете использовать функцию eval:
list = eval('["Foo", "Bar", "Baz", "Woo"]') распечатать (список) # ['Фу', 'Бар', 'Баз', 'Ву']
Альтернативное решение
Основываясь на комментарии baptx, альтернативный способ (вероятно, лучший) — использовать пакет ast:
из ast import literal_eval list = literal_eval('["Фу", "Бар", "Баз", "Ву"]') распечатать (список) # ['Фу', 'Бар', 'Баз', 'Ву']2
Работа со строкой ‘[«Foo»,»Bar»,»Baz»,»Woo»]’:
str = '["Foo","Bar","Baz","Woo"]' str1 = str.replace(']', '').replace('[', '') л = str1.replace('"', '').split(",") print l # ['Foo', 'Bar', 'Baz', 'Woo'] Список
Если вы имеете в виду использование модуля массива Python, вы можете сделать так:
импортировать массив как ar x = ar.array('c') # Массив символов для i в ['Foo', 'Bar', 'Baz', 'Woo']: x.extend(ar.array('c', i)) print x #array('c', 'FooBarBazWoo')
Будет намного проще, если вы рассмотрите возможность использования NumPy:
импортировать numpy как np y = np.array(['Фу', 'Бар', 'Баз', 'Ву']) print y # ['Foo' 'Bar' 'Baz' 'Woo']
Вы также можете сделать это:
импортировать json json.loads('["Фу", "Бар", "Баз", "Ву"]')
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google Зарегистрироваться через Facebook Зарегистрируйтесь, используя адрес электронной почты и парольОпубликовать как гость
Электронная почтаТребуется, но не отображается
Опубликовать как гость
Электронная почтаТребуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания и подтверждаете, что прочитали и поняли нашу политику конфиденциальности и кодекс поведения.
python — преобразовать большой массив numpy в строку
спросил
Изменено 3 года, 1 месяц назад
Просмотрено 2к раз
Я пытался преобразовать большой массив NumPy в строку, используя np.array_str()
или str()
, но оказывается, что вывод не содержит всех значений массива.
вес=np.random.rand(5000,500) печать(вес.форма) печать (len (np.array_str (вес))) print(len(str(вес))) >>(5000,500) >>443 >>443
Что намного меньше фактического количества цифр.
Как получить полный массив в виде строки? Н.Б. Я хочу написать жало в текстовом файле.
- питон
- массивы
- numpy
str(weight)
— это просто консольное представление строки, оно не преобразует все значения в строковые значения, вместо этого генерирует строку, которую можно вывести на консоль, например:
>>> str (масса) '[[0,61063338 0,76216809 0,09732382 . .. 0,74375515 0,09525192 0,43705637]\n [0,70583367 0,25657426 0,53279926 ... 0,72487029 0,3 6734946 0,67419836]\n [0,95006557 0,84218583 0,75602697 ... 0,51730571 0,11963987 0,84481707]\n ...\n [0,35017875 0,16172616 0,1801609 5 ... 0,74119508 0,09725982 0,93651959]\n [0,41584527 0,62796044 0,65794606 ... 0,12521724 0,62784847 0,57898542]\n [ 0,72758274 0,99773068 0,15162054 ... 0,42649996 0,631018 0,446582 ]]'
Попробуйте преобразовать массив в список, а затем в строку:
str(weight.tolist())
Чтобы создать представление, разделенное табуляцией и строкой (если вы принимаете это), вы можете сделать
с open("test.txt", "w") как fh: weight.tofile(fh, sep="\t")
Другой способ — выгрузить его как json
, который имеет тот же синтаксис, что и код Python для списка:
из дампа импорта json с open("test.txt", "w") как fh: дамп(weight.tolist(), fh)
Я использовал json
, чтобы ничего не потерялось.