Un proveniso: l'élément de syntaxe au cœur de ma question est dans la langue de Python; Cependant, cet élément apparaît fréquemment dans la bibliothèque matplotlib, qui est le seul contexte que je l'ai vu. Ainsi, qu'il s'agisse d'une question générale de syntaxe Python ou d'une bibliothèque, je ne suis pas sûr. Ce que je sais, c'est que je ne pouvais rien trouver sur point - ni dans la référence de langue python em> ou dans les documents de matplotlib. Ceux qui utilisent et / ou se développent avec l'excellente bibliothèque de tracé Python , Matplotlib reconnaîtra le motif de syntaxe ci-dessous. ( p> Quelle est la construction sur le côté gauche de cette expression? strong> em> et, p> et, P> Quel est le but de l'utiliser? strong> EM> P> Je suis familier avec l'affectation Je suis également conscient que dans Python One-Item tuples em> est parfois représenté comme t, p> et pourrait être la réponse à la première question ci-dessus; si oui, je ne comprends pas encore la raison pour laquelle seul le premier élément de la valeur renvoyé de l'appel à tracé em> est nécessaire ici . P> (Remarque: "L" est une minuscule "ell"; J'utilise cette lettre parce que LS est la lettre la plus souvent utilisée ici, probablement parce qu'elle est liée à un objet qui commence par le même objet lettre-voir ci-dessous). p> Quelque contexte supplémentaire: p> L'appel à Tercle em> retourne Line2D instances strong>: p> donc l est un objet de type line2d. em> p> une fois lié à L'objet Lines2D, cette "variable" est généralement visible dans le code MATPLOLIB, comme: p> Cette expression modifie la couleur de la ligne qui représente les valeurs de données dans la fenêtre de la parcelle ( la "ligne de tracé") p> ci-dessous est un autre exemple; Il montre un scénario commun pour cette construction "Variable-virgule", qui consiste à intégrer de petits widgets toxo-outils / graphiques-toolound dans une fenêtre de tracé matplotlib, par exemple, pour basculer activé / désactivé par case à cocher, plusieurs séries de données apparaissant dans la fenêtre de la parcelle. . P> Dans le code ci-dessous, une graphique simple Matplotlib et un widget simple comprenant deux cases à cocher une pour chaque série de données sont créées. p> l0 strong> em> et l1 em> strong> est à nouveau liée aux appels vers tracé em>; Les deux apparaissent quelques privilèges plus tard lorsque leurs méthodes Get_visible et Set_Visibles sont appelées dans une fonction personnalisée passée lorsque * On_click * est appelé. P>
from matplotlib.widgets import CheckButtons
ax = plt.subplot(111)
l0, = ax.plot(s, t, visible=False, lw=2)
l1, = ax.plot(t, s1, lw=2)
rax = plt.axes( [.05, .4, .1, .15] )
check = CheckButtons(rax, ('raw', 'transformed'), (False, True))
def fnx(checkbox_label):
if checkbox_label == 'raw':
l0.set_visible(not l0.get_visible())
elif checkbox_label == 'transformed':
l1.set_visible(not l1.get_visible())
check.on_clicked(fnx)
plt.show()
3 Réponses :
>>> l=[3] >>> [v] = l >>> v 3 >>>
Certaines explications:
Nous savons p> donne puis essayez de le décompresser, donc nous obtenons a == 1, b == 2 code> p> P> P> P> P> P> P>
(a,) = [1] code> p>
a == 1 code> p> p> p> P>
Donner un peu de raison sur la raison pour laquelle
tracé code> retourne une séquence,
tracé code> est modelé de la parcelle de Matlab, de sorte qu'il accepte un nombre arbitraire de lignes à parcourir avec un seul Appel de fonction. (par exemple, vous pouvez faire des choses comme
plt.plot (x, 1 * x, x, 2 * x, x, 3 * x, x, 4 * x) code> et tracer 4 lignes, ou transmettre Tableaux 2D et obtenez une ligne pour chaque ligne) à cause de cela,
TRACE code> renvoie toujours une séquence, même s'il n'y a qu'une seule ligne. En fait, il est assez rare de tracer plus d'une ligne à la fois avec
tracé code>, vous voyez donc très souvent
l, = plt.plot (x, y) code>.
fréquemment utilisé dans MATPLOTLIB CODE> Pourriez-vous lier à un exemple dans les documents?
telle que MATPLOTLIB.ORG/USERS/.../a>