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'

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.

>>>

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

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

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: ''.


4
votre "myTuple" est une liste btw
bariod
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.