Bonjour,

J'ai vu un code qui utilisait le formatage des chaines (qui ressemble à une fonction de hackage) pour créer un dico anglais/français , j'ai utilisé la méthode dict(zip..) et sorted () , mais je n'arrive à faire un affichage correct avec un dico tabulé + saut de ligne + alignement , ce n'est que vers la fin de mon code que j'arrive à un certain alignement (plutôt du hasard mais je ne pense que la neutralisation de l'alinéa soit suffisant avec une virgule) . Si je crée un dico A/F avec dict(zip...) , la méthode du % pour inverser l'ordre ne sert à rien et même cette méthode '%s\t%s\n' pour manipuler les chaines dans une liste , ne marcherait pas sur un dico qui comporte des clés et valeurs ... A moins d'utiliser la méthode items() qui renvoie un tuple des clés et valeurs .

J'ai essayé au début d'extraire des tuples des valeurs des clés du dico , mais je n'obtiens pas un résultat concret , la méthode keys() et values() pourraient servir mais ceci reviendrait à un formatage des chaines .Par ailleurs , j'ai limité volontairement la taille du dico pour corriger quickly et insérer des print partout ...

Je me suis inspirée du site qui est très intéressant pour la résolution du problème http://christophe.boilley.free.fr/py...s.html#chaines

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
>>> li = ['blue', 'black']
>>> du = ['bleu', 'noir']
>>> var = dict(zip(li,du))
>>> var
{'blue': 'bleu', 'black': 'noir'}
>>> durr = {}
>>> for ligne in var :
	ligne= var.get('blue','?'),var.get('black','?')
	print ligne
 
 
('bleu', 'noir')
('bleu', 'noir')
>>> var
{'blue': 'bleu', 'black': 'noir'}
>>> d = {}
>>> for t in var :
	t = var.get('blue','?'),var.get('black','?')
	d += {'%s\t%s\n' % (var.get('blue','?'), var.get('black','?'))}
	print d
 
 
 
Traceback (most recent call last):
  File "<pyshell#17>", line 3, in <module>
    d += {'%s\t%s\n' % (var.get('blue','?'), var.get('black','?'))}
TypeError: unsupported operand type(s) for +=: 'dict' and 'set'
>>> for t in var :
	t = var.get('blue','?'),var.get('black','?')
	d += '%s\t%s\n' % (var.get('blue','?'), var.get('black','?'))
	print d
 
 
 
Traceback (most recent call last):
  File "<pyshell#19>", line 3, in <module>
    d += '%s\t%s\n' % (var.get('blue','?'), var.get('black','?'))
TypeError: unsupported operand type(s) for +=: 'dict' and 'str'
>>> for t in var :
	t = var.get('blue','?'),var.get('black','?')
	d = '%s\t%s\n' % (var.get('blue','?'), var.get('black','?'))
	print d
 
 
bleu	noir
 
bleu	noir
 
>>> u ={}
>>> for i in var:
	i = var['blue'],var['black']
	print i
	u = '%s\t%s\n' % (var.get('blue','?'), var.get('black','?'))
	print u
 
 
('bleu', 'noir')
bleu	noir
 
('bleu', 'noir')
bleu	noir
 
>>> o = {}
>>> for e in var :
	e = var['blue'],var['black']
	o = '%s\t%s\n' % (var['blue'],var['black'])
	print o
 
 
bleu	noir
 
bleu	noir
 
>>> b = {}
>>> for j in var :
	j = var['blue'],var['black']
	var = '%s\t%s\n' % j
	print var
 
 
bleu	noir
 
 
Traceback (most recent call last):
  File "<pyshell#42>", line 2, in <module>
    j = var['blue'],var['black']
TypeError: string indices must be integers, not str
>>> var
'bleu\tnoir\n'
>>> var = '%s\t%s\n' % j
 
Traceback (most recent call last):
  File "<pyshell#44>", line 1, in <module>
    var = '%s\t%s\n' % j
TypeError: not enough arguments for format string
>>> var = {'blue': 'bleu', 'black': 'noir'}
>>> j = var['blue'],var['black']
>>> j
('bleu', 'noir')
>>> var = '%s\t%s\n' % j
>>> var
'bleu\tnoir\n'
>>> var = {'blue': 'bleu', 'black': 'noir'}
>>> p = {}
>>> for y in var :
	y = var.values()
	print y
 
 
['bleu', 'noir']
['bleu', 'noir']
>>> var = {'blue': 'bleu', 'black': 'noir'}
>>> o = '%s\t%s\n' % var
 
Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    o = '%s\t%s\n' % var
TypeError: not enough arguments for format string
>>> o = {}
>>> o = '%s\t%s\n' % var
 
Traceback (most recent call last):
  File "<pyshell#60>", line 1, in <module>
    o = '%s\t%s\n' % var
TypeError: not enough arguments for format string
>>> var = {'blue': 'bleu', 'black': 'noir'}
>>> def prd(var) :
	for c in sorted(var) :
		print '\t', c, ':', var[c]
 
 
>>> prd(var)
	black : noir
	blue : bleu
>>> var = {'blue': 'bleu', 'black': 'noir'}
>>> def prd(var) :
	for e in sorted(var) :
		print '\t', z, '    ', var[e]
 
 
>>> prd(var)
 
Traceback (most recent call last):
  File "<pyshell#74>", line 1, in <module>
    prd(var)
  File "<pyshell#73>", line 3, in prd
    print '\t', z, '    ', var[e]
NameError: global name 'z' is not defined
>>> def prd(var) :
	for e in sorted(var) :
		print '\t', e, '    ', var[e]
 
 
>>> prd(var)
	black      noir
	blue      bleu
>>> var
{'blue': 'bleu', 'black': 'noir'}
>>> def prd(var) :
	for z in sorted(var) :
		print '%s\t%s\n', z, '    ', var[z]
 
 
>>> prd(var)
%s	%s
black      noir
%s	%s
blue      bleu
>>> def prd(var) :
	for t in sorted(var) :
		print '\t\n', t, '    ', var[t]
 
 
>>> prd(var)
 
black      noir
 
blue      bleu
>>> def prd(var) :
	for g in sorted(var) :
		print '\t%s\n', g,'\t ', var[g]
 
 
>>> prd(var)
	%s
black 	  noir
	%s
blue 	  bleu
>>>

Bonne journée