Python convertit le tuple en chaîne

98

J'ai un tuple de caractères comme celui-ci:

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

Comment puis-je le convertir en une chaîne pour qu'il ressemble à:

'abcdgxre'
intel3
la source
1
Essayez ceci aussireduce(add, ('a', 'b', 'c', 'd'))
Grijesh Chauhan
que addcontient cet exemple @GrijeshChauhan?
Steve le
@Steve Vous devez importer la addfonction du operatormodule. Btw "".joinconvient mieux ici, mais si vous souhaitez ajouter différents types d'objets, vous pouvez utiliser ajouter Vérifiez cet exemple de travail
Grijesh Chauhan

Réponses:

165

Utilisez 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.

>>>

la source
23
Ne fonctionne pas si le tuple contient des nombres. Try tup = (3, None, None, None, None, 1406836313736)
Raj
56
Pour les numéros, vous pouvez essayer ceci:''.join(map(str, tup))
Mo Beigi
27

voici un moyen simple d'utiliser join.

''.join(('a', 'b', 'c', 'd', 'g', 'x', 'r', 'e'))
Back2Basics
la source
13

Cela marche:

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

Il produira:

'abcdgxre'

Vous pouvez également utiliser un délimiteur comme une virgule pour produire:

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

En utilisant:

','.join(('a', 'b', 'c', 'd', 'g', 'x', 'r', 'e'))
TruthSeeker
la source
3

Le moyen le plus simple serait d'utiliser la jointure comme ceci:

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

Cela fonctionne parce que votre délimiteur n'est essentiellement rien, pas même un espace vide: ''.

W_water_m
la source
4
votre "myTuple" est une liste btw
bariod