Python - set-Liste Auswahl auf einen bestimmten Wert

Ich brauche, um eine Teilmenge einer Liste zu einem bestimmten Wert basiert auf einem Tupel mit Grenzen (start,end).

Zurzeit mache ich das:

indexes = range(bounds[0], bounds[1] + 1)
for i in indexes:
   my_list[i] = 'foo'

Dieser scheint nicht gut zu mir. Ist es ein mehr pythonic Ansatz?

  • Sie können slice-Zuweisung, aber ich denke, deine Methode ist gut. Übrigens, der plural von index ist Indizes.
  • Ehrlich gesagt, Sie Weise, die Sie tun, es ist fein und lesbar, ich denke nicht, dass die Komprimierung auf eine Zeile fügt etwas.
  • Auch ich ziehe Indizes, aber die meisten modernen Wörterbüchern sowohl zu erkennen als akzeptabel.
  • Ich denke, 'Indizes' möglicherweise häufiger in den USA/Kanada, während der 'Indizes' ist häufiger in Großbritannien/Oz
  • Nur re-betonen Sie einen Punkt, halte ich die Art und Weise Sie es tun in Ihrer Frage mehr pythonic als die Antworten, die mit slice-Zuweisung. Das zen of python-Staaten, "einfach ist besser als Komplex". Du bist einfach die Einstellung, die mehrere Elemente einer Liste zu einem Wert, gibt es keine Notwendigkeit für die slice-Zuweisung gibt es alle tun, ist die Einführung von mehr Spielraum für Fehler, indem Sie berechnen, mehrere Werte (durch die Erzeugung des Arrays, die Sie zuweisen, durch). Halten Sie, was Sie haben.
  • Ich rechne damit, dass es keinen Grund gibt, eine variable mit dem Namen indexes in den ersten Platz. Sie müssen nur es einmal, so stecken Sie es einfach in die for-Schleife.
  • Ich eigentlich mit Ihnen einig, dieser Fall, dieses sieht nur kompliziert, da es eine unnötige Zuweisung der index-Variablen, das macht es mehr als es sein muss. EDIT: solange die Grenzen davon ausgegangen werden kann, tatsächlich existieren in der Liste.
  • Sollten Sie Ihren eigenen code als Antwort und es akzeptieren, ich werde upvote es.

InformationsquelleAutor armandino | 2012-07-09
Schreibe einen Kommentar