python集合下标访问_python基础教程-05-字典和集合

本文介绍了Python中的字典和集合基础知识,包括创建、访问、修改、删除等操作,并展示了相关示例。字典是一种无序的键值对数据结构,而集合是无序且不重复的元素序列。文章详细讲解了它们的使用方法及其相关的方法,如get()、add()、update()、remove()等。
摘要由CSDN通过智能技术生成

字典

字典是一种无序的,可变的序列,它的每组元素都有键值对组成,中间用冒号分隔,如果有多组元素的话,元素与元素用逗号隔开 。

字典的语法格式如下:

d = {key1:value1,key2:value2}

字典类型的数据实际使用场景很广,其中最典型的json数据,里面的内容就是由键值对组成 ;或者通过抓包的HTTP请求,你会发现请求报文数据也是有键值对组成 。

字典里的键必须是唯一的,可以是字符串、数字等不可变数据组成 ,值可以是任何数据类型。

创建字典

创建字典的两种方式:通过大括号创建,d = {}

通过dict()类创建, d = dict(),如果里面传值,键值对需要=连接。

# 创建字典

d1 = {} #空字典

d2 = {'zhangsan': 23, 'lisi': 35}

d3 = dict() #空字典

d4=dict(zhangsan=23,lisi=35)

print("字典d1 =",d1)

print("字典d2 =",d2)

print("字典d3 =",d3)

print("字典d4 =",d4)

运行结果:

字典d1 = {}

字典d2 = {'zhangsan': 23, 'lisi': 35}

字典d3 = {}

字典d4 = {'zhangsan': 23, 'lisi': 35}

访问字典

访问字典主要是通过键名获取其值,也可以通过get()方法来获取。通过键名获取的格式:dict_name[key],这种获取方式,如果key不存在,就会抛出异常

通过get方法获取的格式:dict_name.get(key),通过这种方式获取,如果key不存在,返回None。这也是以上两种方式获取的主要区别 。

d5 = {'zhangsan': 23, 'lisi': 35}

print("通过键名获取:",d5['zhangsan'])

#print("通过键名获取:",d5['wangwu']) #键不存在,运行后会报错

print("通过get方法获取:",d5.get('zhangsan'))

print("通过get方法获取:",d5.get('wangwu')) #键不存在,返回None

运行结果:

通过键名获取: 23

通过get方法获取: 23

通过get方法获取: None

修改字典

修改字典中的值,通过dict_name[‘key’] =new_value 。如果键名不存在,则是向字典中添加新的键值对 。

# 3. 修改字典

d6 = {'zhangsan': 23, 'lisi': 35}

d6['zhangsan'] = 19

print('修改键名后的字典:',d6)

d6['wangwu'] = '53'

print('添加键值对后的字典:',d6)

运行后结果:

修改键名后的字典: {'zhangsan': 19, 'lisi': 35}

添加键值对后的字典: {'zhangsan': 19, 'lisi': 35, 'wangwu': '53'}

删除字典

可以删除某个键值对 ;也可以清空整个字典中的数据 ;可以删除整个字典 .删除某键值对:del dict_name[key_name],也可以dict_name.pop(key_name)

清空字典中的数据:dict_name.clear()

删除整个字典: del dict_name

以上的删除操作和列表基本一致,这里就不在举例 。

字典方法

除了以上对字典的操作外,字典也有很多方法 。我们可以通过一张图来看下字典中的方法及使用。

Set集合

集合(set)是一个无序的不重复元素的序列,集合中的元素都是一个唯一的,各不相同。

从语法格式上来看,set的创建和字典一样,都是将元素放在一对大括号{}内,相邻元素之间用逗号(,)分隔 。主要注意的是:创建一个空集合必须使用set()而不是{},因为{}是用来创建一个空字典。

在set集合中,主要有如下几种用法:

创建集合

创建格式:

#第一种创建:使用{}

s = {'元素1','元素2','...','元素N'}

#第二种创建:set()

s1 = set(seq)

这里的seq是字符串、列表、元组、range对象等可迭代对象转化成的集合 。

示例:

tp = ('c++','java','python')

s1 = {'c++','java','python'}

s2 = set(tp)

print("1.通过{}来创建集合",s1)

print("2.将元组中的元素转化为集合",s2)

运行结果

1.通过{}来创建集合 {'c++', 'python', 'java'}

2.将元组中的元素转化为集合 {'c++', 'python', 'java'}

访问集合

由于集合是无序的,所以不能通过下标来获取集合中的元素。所以, 只能通过循环将集合中的元素一一的循环出来。

s3 = {'c++','java','python'}

for s in s3:

print("元素:",s)

运行结果:

元素: java

元素: c++

元素: python备注:由于集合是无序的,所以每次打印出的元素顺序都是不一样的。

更新集合

也可以为集合添加元素,或者更新集合的某个元素。添加元素:s.add('元素')

更新元素:s.update(seq) ,注意

s4 = {'c++','java','python'}

s4.add('go')

print("添加元素后的集合:",s4)

s4.update(['perl','php'])

print('更新后的集合:',s4)

运行结果:

添加元素后的集合: {'java', 'python', 'c++', 'go'}

更新后的集合: {'php', 'c++', 'java', 'go', 'python', 'perl'}

删除集合

集合也可以进行删除元素,也可以将结合删除 。删除集合中的元素:s.remove('元素')

随机删除一个元素:s.pop()

清空集合:s.clear()

删除整个集合:del s

s5 = {'c++','java','python'}

s5.remove('java')

print("删除元素后的集合:",s5)

del s5

#输出结果:删除元素后的集合: {'python', 'c++'}

删除结果后,将无法打印。

其它操作

集合运算

下面对两个集合的运算。

x = {'c++','java','python'}

y = {'php','go','python'}

print("集合x中包含而y中不包含的元素:",x - y)

print("集合x或y中包含的所有元素:",x | y)

print("集合x和y都包含的共同元素:",x & y)

print("不同时都包含x和y的元素",x ^ y)

运行结果:

集合x中包含而y中不包含的元素: {'c++', 'java'}

集合x或y中包含的所有元素: {'go', 'java', 'python', 'php', 'c++'}

集合x和y都包含的共同元素: {'python'}

不同时都包含x和y的元素 {'go', 'java', 'php', 'c++'}

计算集合的元素个数

如果要查看集合中有多少个元素,可以使用len(s)方法 。计算集合s中有多少个元素

s = {'c++','java','python'}

print("集合s中的元素个数是:",len(s))

#输出:集合s中的元素个数是:3

检查某个元素是否在集合中

检查某元素是否在集合中,语法格式如下:

x in s #x是元素,s是集合

示例:

s = {'c++','java','python'}

print('python' in s)

如果检查到原始在集合中,则返回True,否则返回False。

常用方法

set集合中也支持很多方法,多数的功能和上面介绍的都差不多,以下为方法列表 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值