#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. Спасибо, это именно то, что было нужно