So entfernen Sie das Letzte Komma in einer Liste von Integer-zahlen?

In der Liste ist, soll das Quadrat jeder Zahl. Ich habe es geschafft, das zu tun, aber ich muss mich um das Letzte Komma in der Reihenfolge.

Wenn ich diesen code verwenden:

def multiplicator():
      for a in range(3, 20):
          b = (a*a)
          print(b, end=",")

multiplicator()

Bekomme ich:

9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361,
InformationsquelleAutor J.doe | 2017-09-10



3 Replies
  1. 0

    Können Sie Ihre Schleife und fügen Sie eine Bedingung:

    def multiplicator():
        for a in range(3, 20):
            b = (a*a)
            print(b, end="")
            if a<19: # if not the last element
              print(end=",") # print ","
        print() # print new line after everything
    
    multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

    Können Sie auch einen ternären Zustand zu verkürzen, code:

    def multiplicator():
        for a in range(3, 20):
            b = (a*a)
            print(b, end="," if a<19 else "")
    
        print() # print new line after everything
    multiplicator() # => 9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361
    • Ich habe nicht nach unten Stimmen, aber wenn man sich die anderen Antworten, die Sie sollten in der Lage sein, um es herauszufinden selbst…nur weil eine Antwort „funktioniert“ nicht automatisch gut.
    • Ich habe es besser, ich weiß, wie Sie beitreten, ich habe absichtlich den code Links, wie Sie ist, weil ich weiß, dass der OP ein Anfänger und möchte seinen code so nah zu sein wie möglich, das ist der Grund, warum er akzeptierte meine Antwort und nicht die anderen. Und dies ist wahrscheinlich eine Aufgabe, so dass Sie nicht einmal erlauben, ihn zu verwenden, beitreten.
    • Eher als dumb-down Ihre Antworten, in Zukunft sollten Sie vielleicht in Erwägung ziehen, beide Möglichkeiten in Ihre Antwort—denn sonst macht es Aussehen wie Ihre eigenen Verständnis der Sprache ist auch sehr einfach (das könnte Verdacht erwecken, dass die Ratschläge, die Sie geben ist nicht die beste). In diesem speziellen Fall, seit der OP akzeptiert Ihre Antwort, können Sie tatsächlich behindern OP ‚ s Verständnis der Dinge, indem Sie Sie denken, Sie haben zu tun, was Sie in Ihrer Antwort, die deutlich sub-optimal, um erreichen Ihr Ziel.
  2. 6

    Können Sie str.join zum hinzufügen von Trennzeichen zwischen den strings, die Griff nicht ein zusätzliches ein Ende.

    >>> ','.join(str(a*a) for a in range(3, 20))
    '9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361'
  3. 0

    Eine einfache Möglichkeit wäre:

    def multiplicator():
        for a in range(3, 19):
            print(a*a, end=',')  # directly a*a, no need for an intermediate variable
        print(19*19)

    Eine generische Lösung wäre:

    def multiplicator(n):
        for a in range(3, n-1):
            print(a*a, end=',')
        print((n-1)*(n-1))

    Ausgabe:

    >>> multiplicator(20)
    9,16,25,36,49,64,81,100,121,144,169,196,225,256,289,324,361

    Hinweis:

    Dies ist eine einfache und der Ansatz ähnlich zu dem, was Sie versuchen zu tun, aber Sie sollte auf jeden Fall gehen für @CoryKramer ist Antwort mit str.join()

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.