Как преобразовать список кортежей в список строк без запятых

#python #string #tuples

#python #строка #кортежи

Вопрос:

Как мне преобразовать список перестановок во что-то, что просто:

['HELLO SAMPLE STRING SET', 'HELLO SAMPLE SET STRING' ...]

т.е. для каждого элемента в списке кортежей я хотел бы сделать разделитель пробелом, а не запятой, а также сделать его простой строкой, а не кортежем?

Я пытался использовать .присоединиться, но это не сработало.

Пример:

strings = ['HELLO', 'SAMPLE', 'STRING', 'SET']

permutations_str = list(permutations(strings))

Это приводит к приведенному ниже, но хотелось бы, чтобы это было так, как указано выше.

[('HELLO', 'SAMPLE', 'STRING', 'SET'), ('HELLO', 'SAMPLE', 'SET', 'STRING'), ('HELLO', 'STRING', 'SAMPLE', 'SET'), ('HELLO', 'STRING', 'SET', 'SAMPLE'), ('HELLO', 'SET', 'SAMPLE', 'STRING'), ('HELLO', 'SET', 'STRING', 'SAMPLE'), ('SAMPLE', 'HELLO', 'STRING', 'SET'), ('SAMPLE', 'HELLO', 'SET', 'STRING'), ('SAMPLE', 'STRING', 'HELLO', 'SET'), ('SAMPLE', 'STRING', 'SET', 'HELLO'), ('SAMPLE', 'SET', 'HELLO', 'STRING'), ('SAMPLE', 'SET', 'STRING', 'HELLO'), ('STRING', 'HELLO', 'SAMPLE', 'SET'), ('STRING', 'HELLO', 'SET', 'SAMPLE'), ('STRING', 'SAMPLE', 'HELLO', 'SET'), ('STRING', 'SAMPLE', 'SET', 'HELLO'), ('STRING', 'SET', 'HELLO', 'SAMPLE'), ('STRING', 'SET', 'SAMPLE', 'HELLO'), ('SET', 'HELLO', 'SAMPLE', 'STRING'), ('SET', 'HELLO', 'STRING', 'SAMPLE'), ('SET', 'SAMPLE', 'HELLO', 'STRING'), ('SET', 'SAMPLE', 'STRING', 'HELLO'), ('SET', 'STRING', 'HELLO', 'SAMPLE'), ('SET', 'STRING', 'SAMPLE', 'HELLO')]

Комментарии:

1. result = ' '.join(tuple)

2. Привет, маунтинуотер, я мало что знаю о python как таковом, но, если я правильно понял ваш вопрос, это ответ на вашу проблему? geeksforgeeks.org/python-convert-string-to-tuple Извините, я не могу дать лучшего ответа, я недостаточно хорошо разбираюсь в python, как я уже говорил ранее. Надеюсь, это поможет!

3. Спасибо! Я попробовал эту ссылку, но ответ Марка ниже решил ее отлично.

4. Хорошо, @mountainwater, не забудьте пометить ответ Марка как решение. Приветствует.

Ответ №1:

Вам нужно выполнить join() каждую из перестановок. Вы можете сделать это с помощью простого понимания, например:

 from itertools import permutations

strings = ['HELLO', 'SAMPLE', 'STRING', 'SET']

results = [" ".join(s) for s in permutations(strings)]
  

Результаты:

 ['HELLO SAMPLE STRING SET',
 'HELLO SAMPLE SET STRING',
 'HELLO STRING SAMPLE SET',
 'HELLO STRING SET SAMPLE',
 'HELLO SET SAMPLE STRING',
 ...
 'SET STRING SAMPLE HELLO']
  

Комментарии:

1. Спасибо, это именно то, что было нужно