Zusammenfassung der Unterstützung von Hash-Operationen (Dictionary) für Ruby und Python

Überblick

Eine Zusammenfassung der typischen Operationen von Array in Ruby und Hash (Dictionary) in Python.

Dies ist ein Artikel für Rubyist (Pythonista), der gerade angefangen hat, Python (Ruby) zu lernen.

Voraussetzungen

Referenzinformationen

Methode

Initialisieren

h = {"a" => 1, "b" => 2, "c" => 3}
h2 = {a: 1, b: 2, c: 3}   #Wenn das Symbol der Schlüssel ist
d = {'a': 1, 'b': 2, 'c': 3}

Elemente extrahieren

h['c']    #=> 3
h['d']    #=> nil
d['c']    #=> 3
d['d']    #=>Ausnahme KeyError tritt auf

size

h.size   #=> 3
len( d )   #=> 3

each

Schleife um das Element

h.each do |key,val|
  puts key,val
end
for k,v in d.items():
  print(k,v)

keys, values

Holen Sie sich eine Liste mit Schlüssel und Wert

h.keys    #=> ["a", "b", "c"]
h.values  #=> [1, 2, 3]
keys = d.keys()       #=> dict_keys(['b', 'a', 'c'])
values = d.values()   #=> dict_values([2, 1, 3])

d['d'] = 4
keys                     #=> dict_keys(['b', 'd', 'a', 'c'])
values                   #=> dict_values([2, 4, 1, 3])

list(keys)               #=> ['b', 'd', 'a', 'c']

Aus einem Array generiert

a = [1,2,3,4]
a.map {|x| [x,x+3] }.to_h      #=> {1=>4, 2=>5, 3=>6, 4=>7}
a = [1,2,3,4]
{ i:i+3 for i in a }     #=> {1: 4, 2: 5, 3: 6, 4: 7}

Schlüssel, Wertekarte

h = {"a" => 1, "b" => 2, "c" => 3}
h.map {|k,v| [k.upcase, -v] }            #=> [["A", -1], ["B", -2], ["C", -3]]
h.map {|k,v| [k.upcase, -v] }.to_h       #=> {"A"=>-1, "B"=>-2, "C"=>-3}
d = {'a': 1, 'b': 2, 'c': 3}
{ k.upper():-v for k,v in d.items() }    #=> {'A': -1, 'B': -2, 'C': -3}

has_key?

h = {"a" => 1, "b" => 2, "c" => 3}
h.has_key?("a")               #=> true
h.has_key?("d")               #=> false
d = {'a': 1, 'b': 2, 'c': 3}
'a' in d                      #=> True
'd' in d                      #=> False

merge

h1 = {"a" => 1, "b" => 2, "c" => 3}
h2 = {"d" => 4, "e" => 5, "f" => 6}
h1.merge(h2)
# => {"a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5, "f"=>6}
d1 = {"a": 1, "b": 2, "c": 3}
d2 = {"d": 4, "e": 5, "f": 6}
d1.update(d2)
d1
#=> {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}

delete

h = {"a" => 1, "b" => 2, "c" => 3}
h.delete('a')                      #=> 1
h                                  #=> {"b"=>2, "c"=>3}
d = {"a": 1, "b": 2, "c": 3}
d.pop('a')                         #=> 1
d                                  #=> {'b': 2, 'c': 3}

Festlegen des Standardwerts

Fall der Verwendung eines assoziativen Arrays bei der Aufnahme eines Histogramms

chars = ["a", "b", "b", "c", "c", "c"]
h = Hash.new(0)
chars.each {|c| h[c] += 1 }            #Anzahl der Zeichen zählen
h                                      #=> {"a"=>1, "b"=>2, "c"=>3}
chars = ["a", "b", "b", "c", "c", "c"]
d = {}
for c in chars:
  d[c] = d.get(c,0) + 1             #Holen Sie sich, wenn es einen Wert gibt, geben Sie 0 zurück, wenn nicht
d                                   #=> {'a': 1, 'b': 2, 'c': 3}
from collections import defaultdict
chars = ["a", "b", "b", "c", "c", "c"]
d = defaultdict( lambda: 0 )
for c in chars:
  d[c] += 1

d
# => defaultdict(<function __main__.<lambda>>, {'a': 1, 'b': 2, 'c': 3})

Beim Erstellen eines Index eines Arrays

words = ["a1", "b1", "b2", "c1", "c2", "c3"]
h = Hash.new {|hash,key| hash[key] = [] }
words.each {|w| h[ w[0] ] << w }
h
# => {"a"=>["a1"], "b"=>["b1", "b2"], "c"=>["c1", "c2", "c3"]}
words = ["a1", "b1", "b2", "c1", "c2", "c3"]
d = defaultdict( list )
for w in words:
  key = w[0]
  d[key].append(w)

d
#=> defaultdict(list, {'a': ['a1'], 'b': ['b1', 'b2'], 'c': ['c1', 'c2', 'c3']})

Recommended Posts

Zusammenfassung der Unterstützung von Hash-Operationen (Dictionary) für Ruby und Python
Zusammenfassung der Korrespondenz zwischen Ruby- und Python-Array-Operationen
[Python] Zusammenfassung zum Abrufen von Listen und Wörterbuchelementen
Zusammenfassung der Python-Indizes und -Slices
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Zusammenfassung verschiedener for-Anweisungen in Python
Zusammenfassung nützlicher Techniken von Scrapy in Python
[Python] Wörterbuch (Hash)
Sofortige Methodengrammatik für Python und Ruby (Lernen)
Zusammenfassung der Unterschiede zwischen PHP und Python
Liste der grundlegenden Operationen für Python3-Listen, -Tapples, -Wörterbücher und -Sätze
Installation von Python 3 und Flask [Zusammenfassung der Umgebungskonstruktion]
Zusammenfassung häufig verwendeter Python-Arrays (für mich)
Code zum Überprüfen des Betriebs von Python Matplot lib
E / A-bezogene Zusammenfassung von Python und Fortan
Über flache und tiefe Kopien von Python / Ruby
Vergleich von Python und Ruby (Environment / Grammar / Literal Edition)
Grundlegende Bedienung von Python Pandas Series und Dataframe (1)
[Python] Operation der Aufzählung
Ruby, Python und Map
Python und Ruby teilen sich
Zusammenfassung der Python-Verzeichnisoperationen
Zusammenfassung der Python-Argumente
Liste der Python-Bibliotheken für Datenwissenschaftler und Dateningenieure
Zusammenfassung der Python-Sortierung (Liste, Wörterbuchtyp, Serie, DataFrame)
Python netCDF4 Lesegeschwindigkeit und Verschachtelung von for-Anweisungen
Python - Erläuterung und Zusammenfassung der Verwendung der 24 wichtigsten Pakete
[Python] Typfehler: Zusammenfassung der Ursachen und Abhilfemaßnahmen für 'Kein Typ'
Zusammenfassung der Python-Umgebungseinstellungen für mich [mac] [ubuntu]
Unterschied zwischen Ruby und Python in Bezug auf Variablen
Zusammenfassung der Tools zum Betreiben der Windows-Benutzeroberfläche mit Python
Zusammenfassung der Vorverarbeitungsmethoden für Python-Anfänger (Pandas-Datenrahmen)
Unterstützung für Python 2.7-Laufzeit auf AWS Lambda (ab 2020.1)
Englisch-Englisch Wörterbuch Konfrontation für Python und AI bezogenes Englisch
Zusammenfassung der Datumsverarbeitung in Python (Datum / Uhrzeit und Datum)
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
Erstellen Sie einen API-Server, um den Betrieb der Front-Implementierung mit Python3 und Flask zu überprüfen
Fabric unterstützt Python 3
Python-Liste, für Anweisung, Wörterbuch
Zusammenfassung der Python-Dateivorgänge
Python auf Ruby und wütend Ruby auf Python
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Simulieren Sie mit Python verspätete Schäden für kriminelle Kinderbetreuungskosten
Python und Ruby Slice Memo
Standardeingabe / Zusammenfassung / Python, Ruby
[Python] Zusammenfassung der Verwendung von Split- und Join-Funktionen
Ruby- und Python-Syntax ~ branch ~
Python: Erstellen Sie ein Wörterbuch aus einer Liste von Schlüsseln und Werten
Quellinstallation und Installation von Python
Zusammenfassung der Unterschiede zwischen Ruby on Rails und Django ~ Basics ~
Erstellen einer Docker-Arbeitsumgebung für R und Python 2: Japanische Unterstützung
Erstellen und testen Sie eine CI-Umgebung für mehrere Versionen von Python
Eine kurze Zusammenfassung von Graphviz in Python (nur für Mac erklärt)
Zusammenfassung der empfohlenen APIs für künstliche Intelligenz, maschinelles Lernen und KI
Lösen mit Ruby, Python und numpy AtCoder ABC054 B Matrixberechnung
Zusammenfassung der Unterschiede zwischen Python und PHP (Vergleichstabelle der Hauptelemente)
[Für Anfänger] Zusammenfassung des Leidens an Kaggles EDA und seines Kampfes
Umgebungskonstruktion von Python und OpenCV
Unterschied zwischen Ruby und Python Split