您现在的位置是:亿华云 > IT科技

Python 关于字典的操作,看这个就够了

亿华云2025-10-03 06:38:49【IT科技】7人已围观

简介字典是 Python 必用且常用的数据结构,本文梳理常用的字典操作,看这个就够了,涉及:初始化合并字典字典推导式Collections 标准库字典转 JSON字典转 Pandas初始化# 最常用这种m

字典是关于个够 Python 必用且常用的数据结构,本文梳理常用的字典作字典操作,看这个就够了,关于个够涉及:

初始化合并字典字典推导式Collections 标准库字典转 JSON字典转 Pandas初始化# 最常用这种

Python 关于字典的操作,看这个就够了

my_object = {

Python 关于字典的操作,看这个就够了

"a": 5,字典作

Python 关于字典的操作,看这个就够了

"b": 6

}

# 如果你不喜欢写大括号和双引号:

my_object = dict(a=5, b=6)合并字典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 }字典推导式# 使用字典推导式来删除 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 }Collections 标准库

Collections 是 Python 中的一个内置模块,它有几个有用的字典作字典子类,可以大大简化 Python 代码。关于个够我经常使用的高防服务器字典作其中两个类,defaultdict 和 Counter。关于个够此外,字典作由于它是关于个够 dict 的子类,因此它具有标准方法,字典作如 items()、关于个够keys()、字典作values() 等。关于个够

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

defaultdict 也是 dict 的必杀技:

from collections import defaultdict

# 如果字典的 value 是云南idc服务商 字典

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] == { }字典转 JSON

我们通常说的 JSON 就是指 JSON 字符串,它是一个字符串。Dict 可以转成 JSON 格式的字符串。服务器租用

import json

a = dict(a=5, b=6)

# 字典转 JSON 字符串

json_string = json.dumps(a)

# json_string = { "a": 5, "b": 6}

# JSON 字符串转字典

assert a == json.loads(json_string)

# 字典转 JSON 字符串保存在文件里

with open("dict.json", "w+") as f:

json.dump(a, f)

# 从 JSON 文件里恢复字典

with open("dict.json", "r") as f:

assert a == json.load(f)字典转 Pandasimport pandas as pd

# 字典转 pd.DataFrame

df = pd.DataFrame([

{ "a": 5, "b": 6 },

{ "a": 6, "b": 7 }

])

# df =

# a b

# 0 5 6

# 1 6 7

# DataFrame 转回字典

a = df.to_dict(orient="records")

# a = [

# { "a": 5, "b": 6 },

# { "a": 6, "b": 7 }

# ]

# 字典转 pd.Series

srs = pd.Series({ "a": 5, "b": 6 })

# srs =

# a 5

# b 6

# dtype: int64

# pd.Series 转回字典

a = srs.to_dict()

# a = { a: 5, b: 6}

很赞哦!(3)