2016-11-18 1 views
1

Dies ist eine Zuordnung; Ich habe darüber gearbeitet und irgendwo steckenbleiben; Dictionary Keys-Wiederholung (Liste <int>) in Python #

Dies ist die Eingabe von Textdatei:

min: 1,2,3,5,6 
    max: 1,2,3,5,6 
    avg: 1,2,3,5,6 
    p90: 1,2,3,4,5,6,7,8,9,10 
    sum: 1,2,3,5,6 
    min: 1,5,6,14,24 
    max: 2,3,9 
    p70: 1,2,3 

Dies ist die erforderliche Ausgabe in der Textdatei:

The min of [1, 2, 3, 5, 6] is 1 
    The max of [1, 2, 3, 5, 6] is 6 
    The avg of [1, 2, 3, 5, 6] is 3.4 
    The 90th percentile of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] is 9 
    The sum of [1, 2, 3, 5, 6] is 17 
    The min of [1, 5, 6, 14, 24] is 1 
    The max of [2, 3, 9] is 9 
    The 70th percentile of [1, 2, 3] is 2 

Das ist mein Work-out in die Textdatei ist:

The min of [1, 5, 6, 14, 24] is 1 
    The max of [2, 3, 9] is 9 
    The avg of [1, 2, 3, 5, 6] is 3.4 
    The p90 of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] is 9.0 
    The sum of [1, 2, 3, 5, 6] is 17 
    The p70 of [1, 2, 3] is 2.1 

Logiken

  1. Ich schrieb eine Funktion, um aus einer Datei zu lesen und die Schlüssel: Werte in das Wörterbuch einzufügen;

unten ist das Wörterbuch

OrderedDict([('min', [1, 5, 6, 14, 24]), ('max', [2, 3, 9]), ('avg', [1, 2, 3, 5, 6]), ('p90', [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), ('sum', [1, 2, 3, 5, 6]), ('p70', [1, 2, 3])]) 
  1. Von hier aus mir die erforderlichen und schreibt die Ergebnisse in die Datei

  2. Meine Frage berechnen; wie kann ich die Tasten min und max Duplikat im Wörterbuch machen, wie können Sie sehen, die haben

+0

Gibt es einen Grund, warum Sie die Elemente in einem Wörterbuch speichern müssen - scheint mir, können Sie einfach Zeile lesen Linie, die Berechnung zu tun und die Ergebnisse drucken, und das ist es ... Sie don‘ t müssen sich um doppelte Schlüssel kümmern ... –

Antwort

0

Das Problem ist, überschrieben worden ist, dass die Schlüssel in einem Wörterbuch einzigartig sind. Das heißt, ein Wörterbuch kann nur einen Eintrag mit dem Schlüssel 'min' haben. Deshalb wird Ihr erster Eintrag mit dem Schlüssel 'min' von dem zweiten überschrieben.

Um dies zu lösen, würde ich empfehlen, den Strukturtyp von Dictionary zu etwas anderem zu ändern (wie ein verschachteltes List).

list = [] 
list.append(['min', [1, 2, 3, 5, 6]]) 

finden Sie eine Liste von Reihen, erhalten jeweils die Funktion (wie ‚min‘) und der Anzahl Array enthält.

More about Lists

Verwandte Themen