Python преобразовывает кортеж в строку


101

У меня есть кортеж таких символов:

('a', 'b', 'c', 'd', 'g', 'x', 'r', 'e')

Как преобразовать его в строку, чтобы она была такой:

'abcdgxre'

1
Попробуйте и этоreduce(add, ('a', 'b', 'c', 'd'))
Grijesh Chauhan

что addв этом примере @GrijeshChauhan?
Стив

@Steve Вам нужно импортировать addфункцию из operatorмодуля. Кстати, "".joinздесь лучше подходит, но если вы хотите добавить различные типы объектов, вы можете использовать add. Проверьте этот рабочий пример
Grijesh Chauhan

Ответы:


171

Использование str.join:

>>> tup = ('a', 'b', 'c', 'd', 'g', 'x', 'r', 'e')
>>> ''.join(tup)
'abcdgxre'
>>>
>>> help(str.join)
Help on method_descriptor:

join(...)
    S.join(iterable) -> str

    Return a string which is the concatenation of the strings in the
    iterable.  The separator between elements is S.

>>>

24
Не работает, если кортеж содержит числа. Попробуйте tup = (3, None, None, None, None, 1406836313736)
Raj

57
Для чисел вы можете попробовать следующее:''.join(map(str, tup))
Мо Бейги

27

вот простой способ использования соединения.

''.join(('a', 'b', 'c', 'd', 'g', 'x', 'r', 'e'))

13

Это работает:

''.join(('a', 'b', 'c', 'd', 'g', 'x', 'r', 'e'))

Это даст:

'abcdgxre'

Вы также можете использовать разделитель, например запятую, для получения:

'a,b,c,d,g,x,r,e'

Используя:

','.join(('a', 'b', 'c', 'd', 'g', 'x', 'r', 'e'))

3

Самый простой способ - использовать такое соединение:

>>> myTuple = ['h','e','l','l','o']
>>> ''.join(myTuple)
'hello'

Это работает, потому что ваш разделитель, по сути, ничто, даже не пробел: ''.


7
ваш «myTuple» это список кстати
bariod
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.