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.