» Python快速入门 » 2. 集合篇 » 2.2 字典

字典

构建字典

a = {"first": "John", "last": "Smith"} # {'first': 'John', 'last': 'Smith'}

# from a list of tuples
b = dict([("first", "John"), ("last", "Smith")])

# from keyword arguments
c = dict(first="John", last="Smith")

# from dictionary comprehension
d = {x: x**2 for x in range(10)} # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

遍历元素

a = {"domain": "literank.com", "services": 29, "year": 2017}
for k, v in a.items():
    print(k, '->', v)

添加/更新元素

a = {"first": "John", "last": "Smith"} # {'first': 'John', 'last': 'Smith'}
a["age"] = 26
a["first"] = "Tom"
print(a) # {'first': 'Tom', 'last': 'Smith', 'age': 26}

检查是否存在

a = {"first": "John", "last": "Smith"}
print("first" in a) # True
print("age" in a) # False

字典常用方法

fromkeys

a = ['a', 'b', 'c']
b = dict.fromkeys(a, 10) # 10 is the default value for all keys
print(b) # {'a': 10, 'b': 10, 'c': 10}

clear 清空

a = {"first": "John", "last": "Smith"}
a.clear()
print(a) # {}

get 获取

a = {"first": "John", "last": "Smith"}
print(a.get("first")) # John
print(a.get("age", 28)) # 28

get 方法签名是 get(key[, default])。如果 key 存在, 返回其值;否则,返回 default 参数给定值。 如果 default 参数没有传值,默认设置其为 None。因此,该方法不会抛出 KeyError

setdefault 设置(带默认值)

a = {"first": "John", "last": "Smith"}
a.setdefault("first", "Tom")
a.setdefault("age", "12")
print(a) # {'first': 'John', 'last': 'Smith', 'age': '12'}

setdefault 方法签名是 setdefault(key[, default])。如果 key 存在,返回其值;否则,插入 key 及其 default 键值对,并返回 default。 此处 default 默认值也是 None

解构字典

def passport_check(first, last):
    print(f"{first} {last} is ok to go!")

a = {"first": "John", "last": "Smith"}
# unpack with double asterisks
passport_check(**a) # John Smith is ok to go!

代码挑战

修改编辑器中代码使其交换字典中的 key-value 键值对。

比如: {'a': 'b'} 交换成 {'b': 'a'}

Loading...
> 此处输出代码运行结果
上页
下页