python入门学习03day

一、字典(来自菜鸟教程)

1.字典(dict)的概念

1.字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 。
格式如下所示:

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

在这里插入图片描述
2.特性:字典的作用和列表类似,都是用来存储对象的容器,但是字典的查询的效率非常好。
3.在字典中可以保存多个对象,每个对象都有唯一的名字.

2.字典的创建

1.如:

#使用大括号 {} 来创建空字典
emptyDict = {}
#打印字典
print(emptyDict)
#查看字典的数量
print("Length:", len(emptyDict))
#查看类型
print(type(emptyDict))

输出结果

{}
Length: 0
<class 'dict'>

也可以直接调用函数dict()创建 如:

d = dict('name' = aa, bu = 18)

2.字典的值可以是任意的对象,但是字典的键可以是任意的不可变的对象(int str bool tuple),字典中的键是不能重复的,不然后面的值会替换前面的值。

3.访问字典里的值

1.根据键来获取值 如:

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
dict['Name']:  Runoob
dict['Age']:  7

2.双值序列:即是序列中只有两个值,[1,2] ('a,3') 'ab'等,双值字序列,即是序列中的元素也是序列。[(1,2)],(2,3)]
3.用函数get(key,[,default])该方法时用来根据键来获取字典中的值,如果获取的键不存在则返回None
也可以指定一个默认值,作为第二个参数,这样获取不到值时将会返回默认值。

4.字典的用法

1.len()函数用来获取字典中的键值对的个数,in用来检查字典中是否包含指定的键,not in检查字典中是否不包含指定的值。
下面是inis的对比

在这里插入图片描述
2.修改字典
(1)

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
dict['Age'] = 8               # 更新 Age
dict['School'] = "菜鸟教程"  # 字典中没有则添加该项信息
 
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])
dict['Age']:  8
dict['School']:  菜鸟教程

(2)用函数setdefualt(key,[,defualt])可以用来向字典中添加key-value,注; 如果ke已经存在于字典中,则返回key值,不会对字典做任何的操作,如果不存在,则向字典中添加这个key,并设置value
如:

d ={}
result = d.setdefault('name', '好大个')
print(result)

在这里插入图片描述
3.更新字典
用函数 update([other]) 将其他字典中key-value 添加到当前字典中,如果有重复的lkey,则会替换当前的值。
4.删除字典中的元素
(1)用del()函数

dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
 
del dict['Name'] # 删除键 'Name'
dict.clear()     # 清空字典
del dict         # 删除字典
 
print ("dict['Age']: ", dict['Age'])
print ("dict['School']: ", dict['School'])

(2)通过d.popitem()方法,随机删除一个键值对,一般都会删除最后一个键值对。删除后将会返回key-value作为返回值返回,返回的是一个元组,元组中有两个元素,第一个是删除的key,第二个删除的是value,但是删除一个空的字典时会报错

(3)pop()函数根据key删除字典中的key-value
删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

5.浅复制copy()
复制以后的对象和原对象是独立的,修改不会影响另一个,浅复制只是简单复制对象内部的值,若值也是一个可变的对象,这个可变对象不会被复制

4.字典的遍历三种方法

(1)通过函数keys()

d = {'name':'adc','age':18}
for k in d.keys() :
    print(k)

在这里插入图片描述
(2)用函数values()

d = {'name':'adc','age':18}
for k in d.values() :
    print(k)

该方法返回一个序列,序列中保存所有字典的左右的值
(3)items()

d = {'name':'adc','age':18}
for k,v in d.items() :
    print(k,'=',v)

在这里插入图片描述
该方法会返回字典中的所有的项,并且返回的是一个序列,序列中含有双值子序列,双值指的是key,value

5.字典键的特性

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

两个重要的点需要记住:

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

实例
#!/usr/bin/python3

dict = {‘Name’: ‘Runoob’, ‘Age’: 7, ‘Name’: ‘小菜鸟’}

print ("dict[‘Name’]: ", dict[‘Name’])
以上实例输出结果:

dict[‘Name’]: 小菜鸟
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行,如下实例:

实例
#!/usr/bin/python3

dict = {[‘Name’]: ‘Runoob’, ‘Age’: 7}

print ("dict[‘Name’]: ", dict[‘Name’])
以上实例输出结果:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    dict = {['Name']: 'Runoob', 'Age': 7}
TypeError: unhashable type: 'list'

二、集合(set)

1.集合概念

(1)集合(set)是一个无序的不重复元素序列
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
创建格式:

parame = {value01,value02,...}
或者
set(value)

s = {4,2,24,1,1}
print(s)

(2)可以通过set()将序列和字典转换为集合
在这里插入图片描述

2.集合的操作

(1)添加用函数 s.add(x)将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。s.update( x )将一个人集合中的元素添加到当前的集合中,也可以添加元素,且参数可以是列表,元组,字典等
(2)移除元素
s.remove( x ):删除集合中的指定元素
s.clear( x ):清空集合中的元素
s.pop()随机删除集合中的一个元素

3.集合的运算

 # & 交集
s1 = {1,2,3,4,5}
s2 = {2,3,5,7,8}
result = s1 & s2
print(result)

 # | 并集
result = s1 | s2
print(result)

 # - 差集
result = s2 - s1
print(result)

 # ^ 异或
result = s1 ^ s2
print(result)

 # <= 检查一个集合是否是另一个集合的子集
 # 如果a子集中的元素全部在b个集合中,那么a是b的子集,b是a的全集
result = s1 <= s2
print(result)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值