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})

Проблема в том, что я каждый раз не знаю сколько параметров у меня будет в

parameters, и соответственно сколько нужно glob_param. Нужно в цикле определить необходимое количество и выполнить присваивание.

  • python
  • python-3.x
5

Пример:

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 parm23
5

Зарегистрируйтесь или войдите

Регистрация через Google

Регистрация через Facebook

Регистрация через почту

Отправить без регистрации

Почта

Необходима, но никому не показывается

Отправить без регистрации

Почта

Необходима, но никому не показывается

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Преобразование списка символов в строку 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.

add или же 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»

 

Скачать  Выполнить код

 
В качестве альтернативы вы можете использовать лямбда-выражение писать небольшие функции.

1

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"]' список строк «вещь».

  • питон
  • массивы
  • строка
11

Вы можете сделать это

 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']
 
1

Вы также можете сделать это:

 импортировать 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
1

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 , чтобы ничего не потерялось.