Rumah > pembangunan bahagian belakang > Tutorial Python > Mengenai operasi kamus dalam Python, sudah cukup untuk membaca ini

Mengenai operasi kamus dalam Python, sudah cukup untuk membaca ini

王林
Lepaskan: 2023-04-11 20:16:18
ke hadapan
1891 orang telah melayarinya

Kamus ialah struktur data yang diperlukan dan biasa digunakan dalam Python Artikel ini menyusun operasi kamus yang biasa digunakan. Ini sudah cukup.

    Kamus terbitan
  • Pustaka standard koleksi
  • Kamus kepada JSON
  • Kamus kepada Panda
  • Permulaan
  • Gabung kamus

Pemahaman kamus
# 最常用这种
my_object = {
"a": 5,
"b": 6
}
# 如果你不喜欢写大括号和双引号:
my_object = dict(a=5, b=6)
Salin selepas log masuk

Pustaka standard koleksi
a = { "a": 5, "b": 5 }
b = { "c": 5, "d": 5 }
c = { **a, **b } #最简单的方式
assert c == { "a": 5, "b": 5, "c": 5, "d": 5 }

# 合并后还要修改,可以这样:
c = { **a, **b, "a": 10 }
assert c == { "a": 10, "b": 5, "c": 5, "d": 5 }
b["a"] = 10
c = { **a, **b }
assert c == { "a": 10, "b": 5, "c": 5, "d": 5 }
Salin selepas log masuk

Koleksi ialah modul terbina dalam Python yang mempunyai beberapa Kelas kamus yang berguna boleh sangat memudahkan kod Python. Dua daripada kelas yang kerap saya gunakan ialah defaultdict dan Counter. Tambahan pula, kerana ia adalah subkelas dict, ia mempunyai kaedah standard seperti item(), keys(), values(), dll.

# 使用字典推导式来删除 key
a = dict(a=5, b=6, c=7, d=8)
remove = set(["c", "d"])
a = { k: v for k,v in a.items() if k not in remove }
# a = { "a": 5, "b": 6 }

# 使用字典推导式来保留 key
a = dict(a=5, b=6, c=7, d=8)
keep = remove
a = { k: v for k,v in a.items() if k in keep }
# a = { "c": 7, "d": 8 }

# 使用字典推导式来让所有的 value 加 1
a = dict(a=5, b=6, c=7, d=8)
a = { k: v+1 for k,v in a.items() }
# a = { "a": 6, "b": 7, "c": 8, "d": 9 }
Salin selepas log masuk

defaultdict juga merupakan nirvana dict:

Kamus kepada JSON
from collections import Counter

counter = Counter()
#counter 可以统计 list 里面元素的频率
counter.update(['a','b','a']
#此时 counter = Counter({'a': 2, 'b': 1})

#合并计数
counter.update({ "a": 10000, "b": 1 })
# Counter({'a': 10002, 'b': 2})
counter["b"] += 100
# Counter({'a': 10002, 'b': 102})

print(counter.most_common())
#[('a', 10002), ('b', 102)]
print(counter.most_common(1)[0][0])
# => a
Salin selepas log masuk

Apa yang biasa kita panggil JSON merujuk kepada rentetan JSON, iaitu watak rentetan. Dict boleh ditukar menjadi rentetan dalam format JSON.

from collections import defaultdict

# 如果字典的 value 是 字典
a = defaultdict(dict)
assert a[5] == {}
a[5]["a"] = 5
assert a[5] == { "a": 5 }

# 如果字典的 value 是列表
a = defaultdict(list)
assert a[5] == []
a[5].append(3)
assert a[5] == [3]

# 字典的 value 的默认值可以是 lambda 表达式
a = defaultdict(lambda: 10)
assert a[5] == 10
assert a[6] + 1 == 11

# 字典里面又是一个字典,不用这个,你要做多少初始化操作?
a = defaultdict(lambda: defaultdict(dict))
assert a[5][5] == {}
Salin selepas log masuk

Kamus kepada Panda

Atas ialah kandungan terperinci Mengenai operasi kamus dalam Python, sudah cukup untuk membaca ini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan