Partage
  • Partager sur Facebook
  • Partager sur Twitter

Python/variable/print()

7 mai 2011 à 23:42:02

Salut,
j'ai une question, peut-on récupérer le contenu d'un print dans une variable tout en enlevant les espaces entre les différent caractères
print(co[b],co[c],co[d],co[e],co[f],co[g],co[h])



J'ai essayé mais bon je rame sec.
  • Partager sur Facebook
  • Partager sur Twitter
7 mai 2011 à 23:46:49

Bonsoir,

''.join([co[b],co[c],co[d],co[e],co[f],co[g],co[h]])


?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
7 mai 2011 à 23:49:52

Mieux : ''.join(*co) :p
Bon, d'accord, pas mieux... :(
  • Partager sur Facebook
  • Partager sur Twitter
7 mai 2011 à 23:51:59

les '' corespondent à quoi stp?
Et je met ou la variable de réception?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
7 mai 2011 à 23:54:59

print(''.join(["a", "b", "c", "d", "e"]))


Ah et le '' correspond à ce que tu mets entre tes espaces, c'est à dire dans notre cas aucun espace.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
7 mai 2011 à 23:55:48

A une chaine vide : str().join(list)
  • Partager sur Facebook
  • Partager sur Twitter
8 mai 2011 à 0:11:42

Heu, il faut l'inporter le join()?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
8 mai 2011 à 0:22:12

Du maroc, mais ce n'est pas encore la saison.

-> []

Citation : PsycoPy

Mieux : ''.join(*co) :p
Bon, d'accord, pas mieux... :(



On devrait pouvoir un peu quand même :
''.join(co[i] for i in [b, c, d, e, f, g, h])

  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2011 à 21:24:12

Citation : Grinwik


On devrait pouvoir un peu quand même :

''.join(co[i] for i in [b, c, d, e, f, g, h])



Ceci ne marche pas. Tu ne déclares pas les variables b, c, d ... Tu dois soit rajouter des guillemets autour pour en faire un string (un peu lourd), sinon ceci est moche mais marche :
co[i] for i in 'b c d e f g h'.split()
  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2011 à 21:35:52

Bien sur, les variables sont supposées préalablement définies (co également au passage). Ca me parrait tellement évident que je n'aurais jamais pensé le préciser en fait (je suppose qu'il en est de même pour l'auteur du sujet), mais il semble que ce fut un tord :)

Par contre pour indexer avec une chaîne de caractères, il faut que co soit un dictionnaire qui a des chaines comme clés,ou un objet qui redéfini __getitem__ en attendant une chaine ou... je ne vois pas quoi d'autre. Exit les listes, tuples et chaines, ça me parait donc un peu foireux comme réponse non ? ^^
  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2011 à 4:09:46

Citation : MathX

Citation : Grinwik


On devrait pouvoir un peu quand même :

''.join(co[i] for i in [b, c, d, e, f, g, h])



Ceci ne marche pas. Tu ne déclares pas les variables b, c, d ... Tu dois soit rajouter des guillemets autour pour en faire un string (un peu lourd), sinon ceci est moche mais marche :

co[i] for i in 'b c d e f g h'.split()

Hum. Intérêt de "b c d e f g h".split() ?
  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2011 à 22:14:10

Citation

Hum. Intérêt de "b c d e f g h".split() ?


surement pour faire ['b','c','d','e','f','g','h'] :)
  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2011 à 22:15:15

Citation : Grinwik

Par contre pour indexer avec une chaîne de caractères, il faut que co soit un dictionnaire qui a des chaines comme clés,ou un objet qui redéfini __getitem__ en attendant une chaine ou... je ne vois pas quoi d'autre. Exit les listes, tuples et chaines, ça me parait donc un peu foireux comme réponse non ? ^^


Ici l'auteur semblait vouloir prendre certaines clés précises du dictionnaire, qui devraient donc exister (après, vu qu'il s'agit de l'ordre alphabétique régulier, l'utilisation de listes par ex pourrait être plus utile par ex, à voir).

@Maxibolt : ça crée une liste ['b','c',...] simplement. C'est juste plus léger d'écrire ça que de devoir écrire 50 fois ',' entre chaque clé (bien que plus moche).
  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2011 à 22:23:40

Citation : MathX

Ici l'auteur semblait vouloir prendre certaines clés précises du dictionnaire [...]


La question est : où vois-tu qu'il est question d'un dictionnaire ? La seule chose qu'on sait c'est que co est un truc indexable. Tu fais une grosse hypothèse ici.

Citation : MathX

@Maxibolt : ça crée une liste ['b','c',...] simplement. C'est juste plus léger d'écrire ça que de devoir écrire 50 fois ',' entre chaque clé (bien que plus moche).


Je pense plutot qu'il parlait de ça :

>>> for i in 'b c d e f g h'.split(): print i
...
b
c
d
e
f
g
h
>>> for i in 'bcdefgh': print i
...
b
c
d
e
f
g
h
  • Partager sur Facebook
  • Partager sur Twitter
12 mai 2011 à 22:36:08

Ah oui forcément, j'avais pas pensé directement à cette solution. Tant que les clés ne dépassent pas la taille d'un caractère, cette solution est aussi tout à fait viable (sinon il faudra se tourner vers la mienne).

EDIT : sinon oui, mea culpa, je sais pas pourquoi j'ai vu dic, mais c'est un bête truc indexable.
  • Partager sur Facebook
  • Partager sur Twitter