2016-07-20 17 views
0

Mein dict:der Suche nach einem bestimmten Element in Standardwörterbuch python

expiry_strike = defaultdict(<type 'list'>, {'2014-02-21': [122.5], '2014-01-24': [123.5, 122.5, 119.0, 123.0]}) 
expiry_value = defaultdict(<type 'list'>, {'2014-02-21': [-100], '2014-01-24': [-200, 200, 1200, 200]}) 

Meine Frage:

ich eine Schleife ausgeführt werden soll, die das gemeinsame Element findet und in expiry_strike (122,5 in diesem Fall),

und wenn ein gemeinsames Element gefunden wird,

dann möchte ich die Werte in expiry_value hinzufügen. (hier möchte ich hinzufügen -100 + 200)

+0

122.5 oder ein gemeinsames Element erscheint auf "expiry_strike" – DPatel

+0

Wenn es dann tut, möchte ich die Elemente zu 122.5 in "expiry_value" hinzufügen und vorzugsweise eine neue Liste erstellen oder die bestehende aktualisieren – DPatel

+0

@Dan im stecken bei der Erstellung einer wenn Schleife. Irgendwie ist es schießen zufällige Ausgänge – DPatel

Antwort

1

Ich werde Ihnen zeigen, wie Sie das häufigste Element finden können, den Rest sollten Sie selbst behandeln.

Es gibt diese nette Bibliothek namens collections, die eine Counter Klasse enthält. Was jedes Element in einem iterablen zählt und sie in einem Wörterbuch mit den Schlüsseln speichert, sind die Elemente und die Werte sind die Zählungen.

from collections import Counter 

expiry_strike = {'2014-02-21': [122.5], '2014-01-24': [123.5, 122.5, 119.0, 123.0]} 

for values in expiry_strike.values(): 
    counts = Counter(values) 
    print max(counts , key=lambda x: counts[x]) 

    # key=lambda x: counts[x] says to the max function 
    # to use the values(which are the counts) in the Counter to find the max, 
    # rather then the keys itself. 
    # Don't confuse these values with the values in expiry_strike 

Dies findet das häufigste Element für alle verschiedenen Tasten in expiry_strike. Wenn Sie das am häufigsten verwendete Element mit allen Werten in expiry_strike finden möchten, müssen Sie die Listen in expiry_strike.values() kombinieren.

Verwandte Themen