字典类型


前言

字典dict是python中使用频繁的数据类型


一、什么是字典?

定义:在{ }中用逗号分隔开的多个元素,每个元素都以key : value的形式呈现,其中value可以是任意数据类型,但必须为不可变数据类型,通常使用字符串类型,方便对value进行描述。

示例:
info = {“name”:“alex”,“age”:23,“gender”:“male”} # 本质是 info = dict({“name”:“alex”,“age”:23,“gender”:“male”})
#或者
info1 = dict(name=“P”,age=23,gender=“male”) # {‘name’: ‘P’, ‘age’: 23, ‘gender’: ‘male’}

二、字典类型转换

转换1

info = dict([["name","andy"],("age",23)])  
print(info)   # {'name': 'andy', 'age': 23}

转换2 : {}.fromkeys会从元组中取出每一个值当key,然后与None组成key:None放进字典

info = {}.fromkeys(("name","age","gender","hobbies"),None) 
print(info)   # {'name': None, 'age': None, 'gender': None, 'hobbies': None}

三、字典的使用

dict = {
    "name":"alex",
    "age":23,
    "gender":"male",
    "hobby":["reading","music"]
}

1、按key存取值,可存可取可修改
取值

print(dict["name"])   # alex
print(dict['hobby'][1])  # music

对于赋值操作,如果key不存在于字典中,则新增key:value

dict["hometown"]="Henan" 
print(dict)  # {'name': 'alex', 'age': 23, 'gender': 'male', 'hobby': ['reading', 'music'], 'hometown': 'Henan'}

对于赋值操作,如果key存在于字典中,则修改key:value

dict["hometown"]="zhengzhou"  
print(dict)  # {'name': 'alex', 'age': 23, 'gender': 'male', 'hobby': ['reading', 'music'], 'hometown': 'zhengzhou'}

2.len(dict) 统计字典中元素的个数

print(len(dict))  # 4

3、成员运算 in 和 not in,判断某个key是否在字典中

print("name" in dict)  #  True

4、删除:pop()
括号内指定key来删除对应的key:value(“age”:23),并返回value值

v=dict.pop("age")  # 通过指定key来删除key:value
print(dict)  # {'name': 'alex', 'gender': 'male', 'hobby': ['reading', 'music']}
print(v)  # 23

5、键key(),值value(),键值对itmes()
获取键key

print(dict.keys())  # dict_keys(['name', 'age', 'gender', 'hobby'])

获取值value

print(dict.values())  # dict_values(['alex', 23, 'male', ['reading', 'music']])

获取键值对item

print(dict.items())  # dict_items([('name', 'alex'), ('age', 23), ('gender', 'male'), ('hobby', ['reading', 'music'])])

6.循环

默认遍历key

for key in dict: 
    print(key)
name
age
gender
hobby

只遍历key

for key in dict.keys(): 
    print(key)

遍历value

for key in dict.values():  #
    print(key)

alex
23
male
['reading', 'music']

遍历键值对key:value

for key in dict.items():  
    print(key)

('name', 'alex')
('age', 23)
('gender', 'male')
('hobby', ['reading', 'music'])

7.get()
获取字典中对应key的value值

print(dict.get("name"))  # alex

如果字典中没有对应的key,则返回None

print(dict.get("star"))  #None

8.popitme() # 随机删除一组key:value,并返回值

item = dict.popitem()  # 随机删除一组key:value
print(dict)  # {'name': 'alex', 'age': 23, 'gender': 'male'}
print(item)  # 返回值:('hobby', ['reading', 'music'])

9.update() 用新的字典更新旧的字典,有则修改,无则增加

dict.update({"Height":176,"Weight":"70kg","age":27})
print(dict)  # {'name': 'alex', 'age': 27, 'gender': 'male', 'hobby': ['reading', 'music'], 'Height': 176, 'Weight': '70kg'}

10.fromkeys()

dict1 = dict.fromkeys([1,2,3],666)
print(dict1)  # {1: 666, 2: 666, 3: 666}

11.setdefault()
key不存在则新增key:value对,并返回新增的值

res = dict.setdefault("heigit",175)
print(dict)  # {'name': 'alex', 'age': 23, 'gender': 'male', 'hobby': ['reading', 'music'], 'heigit': 175}
print(res)  # 175

key存在则不做修改,并返回原值

res = dict.setdefault("age",27)
print(dict)  # {'name': 'alex', 'age': 23, 'gender': 'male', 'hobby': ['reading', 'music']}
print(res)  # 23
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值