python字典

python字典

字典是另一种可变容器模型,且可存储任意类型对象。

1 创建字典

字典的每个键值对(key=>value)用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

1、创建普通的字典。例如:

dict = {"id": 2021001, "name": "zhangsan", "age": 18}
print(dict)
print(type(dict))

dict1 = { 'abc': 456 }
dict2 = { 'abc': 123, 98.6: 37 }
print(dict1)
print(dict2)
{'id': 2021001, 'name': 'zhangsan', 'age': 18}
<class 'dict'>
{'abc': 456}
{'abc': 123, 98.6: 37}

2、创建同value不同key的字典。例如:

dict3 = {"key1":1, "key2":1}
print(dict3)
{'key1': 1, 'key2': 1}

3、如果创建相同key的字典,会如何?

如果创建相同key的字典,不会报错,也能创建成功。但是,因为创建的字典里只会有不同的key,所以两个相同的key之间只会有一个在字典里,对应的value也只会有一个,并且记住的会是第二个key和它的value。

例如:

dict4 = {"key":0, "key":1, "key2":3}
print(dict4)
{'key': 1, 'key2': 3}

2 访问字典里的值

把相应的键放入到方括号中,就能访问到字典里的值了。

可以把字典的key当作它的索引,用key来访问对应的value值。

例如:

dict = {"id": 2021001, "name": "zhangsan", "age": 18}
print(dict["name"])
zhangsan

如果用字典里没有的键访问数据,会输出KeyError错误

print(dict["score"])
---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-12-f778e01594f1> in <module>
----> 1 print(dict["score"])


KeyError: 'score'

3 修改字典

可以在字典里增加新的键值对,也可以修改或删除已有键值对。

1、增加新键值对。例如:
dict = {"id": 2021001, "name": "zhangsan", "age": 18}
print(dict)
dict["sex"] = "man"
print(dict)
{'id': 2021001, 'name': 'zhangsan', 'age': 18}
{'id': 2021001, 'name': 'zhangsan', 'age': 18, 'sex': 'man'}
2、修改键值对。例如:
dict["name"] = "lisi" # 和增加键值对是一样的操作
print(dict)
{'id': 2021001, 'name': 'lisi'}
3、删除键值对。

可以使用del命令删除键值对,也可以使用pop方法、popitem方法删除键值对。

pop方法:使用pop方法删除键值对需要指定键(key),pop方法会删除字典给定键 key 所对应的值,返回值为被删除的值。

popitem方法:使用popitem方法删除键值对是删除的最后一个键值对,并且会返回最后一个键值对。

注意:不能使用del一次删除多个键值对。

1、使用del命令删除键值对。例如:

dict = {"id": 2021001, "name": "zhangsan", "age": 18}
del dict["age"]
print(dict)
{'id': 2021001, 'name': 'zhangsan'}

2、使用del命令一次删除多个键值对,就会报错。例如:

dict = {"id": 2021001, "name": "zhangsan", "age": 18, "score":0, "other":"null"}
del dict["age", "score"]
print(dict)
---------------------------------------------------------------------------

KeyError                                  Traceback (most recent call last)

<ipython-input-95-918970a1968d> in <module>
      1 dict = {"id": 2021001, "name": "zhangsan", "age": 18, "score":0, "other":"null"}
----> 2 del dict["age", "score"]
      3 print(dict)


KeyError: ('age', 'score')

3、使用pop方法删除键值对。例如:

dict = {"id": 2021001, "name": "zhangsan", "age": 18}
print(dict.pop("id"))
print(dict)
2021001
{'name': 'zhangsan', 'age': 18}

4、使用popitem方法删除键值对。例如:

dict = {"id": 2021001, "name": "zhangsan", "age": 18, "score":0, "other":"null"}
print(dict.popitem())
print(dict)
('other', 'null')
{'id': 2021001, 'name': 'zhangsan', 'age': 18, 'score': 0}

4、删除字典

也可以使用del命令删除字典。

注意:使用del删除字典后这个字典就不存在了,这时再去查看字典就会出错。

dict1 = {"id": 2021001, "name": "zhangsan", "age": 18}
print(dict1)
del dict1
print(dict1)
{'id': 2021001, 'name': 'zhangsan', 'age': 18}



---------------------------------------------------------------------------

NameError                                 Traceback (most recent call last)

<ipython-input-77-d47a0b190a12> in <module>
      2 print(dict1)
      3 del dict1
----> 4 print(dict1)


NameError: name 'dict1' is not defined

5、清空字典。

可以使用clear()清空字典。

注意:清空字典后字典依然存在,只是字典里的内容为空,依然可以查看字典。

例如:

dict = {"id": 2021001, "name": "zhangsan", "age": 18}
print(dict)
dict.clear()
print(dict)
{'id': 2021001, 'name': 'zhangsan', 'age': 18}
{}

4 字典键的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。

5 字典内置函数和方法

1、Python字典包含了以下内置函数:

1、len(dict):计算字典元素个数,即键的总数。

2、str(dict):输出字典,以可打印的字符串表示。

3、type(variable):返回输入的变量类型,如果变量是字典就返回字典类型(dict)。

例如:

# 字典的函数
dict = {"a": 1, "b":2, "c":3, 4: 4}
print(dict)
print(len(dict))
print(str(dict))
print(type(dict))
{'a': 1, 'b': 2, 'c': 3, 4: 4}
4
{'a': 1, 'b': 2, 'c': 3, 4: 4}
<class 'dict'>
2、Python字典包含了以下内置方法:

1、radiansdict.clear():删除字典内所有元素

2、radiansdict.copy():返回一个字典的浅复制

3、radiansdict.fromkeys():创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

4、radiansdict.get(key, default=None):返回指定键的值,如果键不在字典中返回 default 设置的默认值

5、key in dict:如果键在字典dict里返回true,否则返回false

6、radiansdict.items():以列表返回一个视图对象

7、radiansdict.keys():返回一个视图对象

8、radiansdict.setdefault(key, default=None):和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

9、radiansdict.update(dict2):把字典dict2的键/值对更新到dict里

10、radiansdict.values():返回一个视图对象

11、pop(key[,default]):删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

12、popitem():随机返回并删除字典中的最后一对键和值。

例如:

# 字典的内置方法
dict = {"a": 1, "b":2, "c":3, 4: 5}

print(dict.keys()) # 查看字典里的所有key
print(dict.values()) # 查看字典里的所有values

print()
print(dict.pop(4)) # 删除指定key的键值对
print(dict)
print(dict.popitem()) # 删除最后一个键值对
print(dict)

print()
dict2 = {
  "color1": "red",
  "color2": "blue",
  "clore3": "black"
}
dict2.update({"color3": "green"}) # 更新键值对
print(dict2)
dict_keys(['a', 'b', 'c', 4])
dict_values([1, 2, 3, 5])

5
{'a': 1, 'b': 2, 'c': 3}
('c', 3)
{'a': 1, 'b': 2}

{'color1': 'red', 'color2': 'blue', 'clore3': 'black', 'color3': 'green'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值