Python内置数据结构 - 字典dict

本文介绍了Python的字典数据结构,包括如何创建字典、字典生成式、常见的增删改操作,如访问、修改和删除键值,以及字典的内置函数如get和fromkeys的使用方法。此外,还探讨了如何遍历字典的键、值和键值对。
部署运行你感兴趣的模型镜像

字典dict

  • 字典是一种组合数据,没有顺序,数据以键值对形式出现
  • 字典是无序序列,所以没有分片和索引
  • 字典中的每个数据都是键值对(kv对, key-value对)
    • key: 必须是可哈希的值,比如int,string,float,tuple, 但是list,set,dict不行
    • value: 任何值

创建字典

# 创建空字典
d = { }
print(type(d))

# 创建空字典2
d = dict()
print(type(d))

d = {1,2,3}
print(type(d))

d = {"one":1, "two":2, "three":3}
print(d)

# 用dict创建有内容字典
d = dict({"one":1, "two":2, "three":3})
print("*" * 20)
d = dict(one=1,two=2, three=3)
print(d)

输出结果:
<class ‘dict’>
<class ‘dict’>
<class ‘set’>
{‘one’: 1, ‘two’: 2, ‘three’: 3}


{‘one’: 1, ‘two’: 2, ‘three’: 3}

字典生成式

# 字典生成式
d = {"one":1, "two":2, "three":3}
dd = {k:v for k,v in d.items()}
print(dd)

#加限制条件
dd = {k:v for k,v in d.items() if v % 2 == 0}
print(dd)

字典的常见增删改操作

  • 访问数据
  • 之间数值键对
  • 修改值的内容
  • 删除某个键值
  • 成员检测: in, not in, 注意检测的是键值key的内容
  • 遍历
# 访问数据
d = {"one":1, "two":2, "three":3}
# 注意访问格式,中括号内是键值
print(d["one"])

#增加一个键值对
d["four"] = 4

# 修改值的内容
d["one"] = "wang"
print(d)

# 删除某个键值使用del
del d["two"]
print(d)

字典的内置函数和结构

  • get:根据指定键值返回相应的值,可以设置返回的默认值,不存在不报错
  • fromkeys: 使用指定的序列作为键值,一个默认值作为所有键的值。注意fromkeys的调用主体
  • 字典内置数据结构在遍历中的作用
    • keys()
    • values()
    • items() : 包含key和value

get使用:

# get:根据指定键值返回相应的值,可以设置返回的默认值,不存在不报错
d = {"one":1, "two":2, "three":3}
print(d.get("one"))
print(d.get("aaa"))
print(d.get("aaa","Not Existed"))

输出结果:
1
None
Not Existed

fromkeys使用

# fromkeys: 使用指定的序列作为键值,一个默认值作为所有键的值
# 注意fromkeys的调用主体

l = ["a","b","c"]
d = dict.fromkeys(l,"111")
print(d)

数据的遍历

# 遍历在python2和python3中区别比较大,代码不通用

d = {"one":1, "two":2, "three":3}
#使用for循环
for k in d:
    print(k,d[k])
    
# 上面代码可以写成如下:

for k in d.keys():
    print(k,d[k])
    
# 可以直接用value来访问
for v in d.values():
    print(v)
    
# 注意键值对的特殊用法
for k,v in d.items():
    print(k,"---",v)

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值