Python-Memo mit Perl - Wörterbuchtyp (Groß- / Kleinschreibung ungültig)

In Perl ist dies Hash.

>>> from requests.structures import CaseInsensitiveDict
>>> cid = CaseInsensitiveDict({'Apple': 'osx', 'NeXT': 'STEP'})
>>> cid
{'Apple': 'osx', 'NeXT': 'STEP'}
>>> cid['apple']
'osx'
>>> cid['APPLE']
'osx'
>>> cid['next']
'STEP'
>>> cid['nEXT']
'STEP'

Fehler ohne Schlüssel

>>> cid['microsoft']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "〜〜/python3.5/site-packages/requests/structures.py", line 54, in __getitem__
    return self._store[key.lower()][1]
KeyError: 'microsoft'

--Ich war sauer ...

Bestätigung der Schlüsselexistenz

has_key


>>> cid.has_key('microsoft')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'CaseInsensitiveDict' object has no attribute 'has_key'

――Wenn es drin ist, ist es okay.

in


>>> 'microsoft' in cid
False
>>> 'apple' in cid
True
>>> 'Apple' in cid
True

Mit Perl ...

--Verwenden Sie ein Modul namens Hash :: Case :: Preserve. ――Es scheint, dass das Verhalten, wenn kein Schlüssel vorhanden ist, dasselbe ist wie das einfache Hash.

cid.pl


use Hash::Case::Preserve;
tie my(%cid),'Hash::Case::Preserve';
$cid{'NeXT'} = 'STEP';
$cid{'Apple'} = 'osx';
print $cid{'next'};
print $cid{'APPLE'};
print $cid{'microsoft'};
print keys %cid
sh-3.2$ perl -l cid.pl 
STEP
osx

AppleNeXT

Recommended Posts

Python-Memo mit Perl - Wörterbuchtyp (Groß- / Kleinschreibung ungültig)
Python-Memo mit Perl-Format ist praktisch.
Python-Runde ist nicht streng rund
Unveränderlicher Python-Typ int memo
Python-Memo mit Perl --join
Python-Datentyp-Zusammenfassungsnotiz
Python Hinweis: Über den Vergleich mit is
[Persönliches Memo] Python-Sequenztyp / Zuordnungstyp
Python Hinweis: Wenn easy_install nicht verwendet werden kann
[Python] Namensfehler: name'urlparse 'ist nicht definiert
[Python] [Meta] Ist der Python-Typ ein Typ?
[Python] Schließen Sie das Vorverarbeitungs-Memo so ab, wie es ist
Python-Memo
Python-Memo
Python-Memo
Python-Memo
Python-Memo
[Persönliches Memo] julia - Verwenden Sie die Python-Bibliothek mit julia unter Verwendung von PyCall
Python Pandas ist nicht für die Stapelverarbeitung geeignet
Python Hinweis: Behandeln Sie Listen gemeinsam als Satz
Python-Protokoll wird nicht mit Docker-Compose ausgegeben
[Hyperas] Typ Fehler: Das Auflösen des Funktionsobjekts ist nicht abonnierbar
[Python] Typ Fehler: 'WebElement'-Objekt ist nicht iterierbar Was tun, wenn ein Fehler auftritt?
Es gibt ein Muster, das das Programm bei Verwendung von Python-Threading nicht gestoppt hat