【Python基础编程】元组、集合与字典的实用技巧与应用

目录

前言

一、元组

(一)元组的定义

(二)元组的使用

(三)注意

二、集合

(一)什么是集合

(二)集合的特点

(三)交并差运算

三、元组和集合异同点

四、容器类型的类型转换

(一)基本使用

(二)快速去重

五、字典

(一)字典的简介

 (二)示例

(三)遍历字典

(四)字典的常见操作

总结


前言


上文讲了字符串和列表,本文接着讲Python中的容器,元组、集合和字典,这三者与字符串和列表类似,都可以存储数据,但却各有千秋,让我们接着往下聊。
 

一、元组


(一)元组的定义


元组是存储数据的另一个方式,使用"()"定义元组,元组与列表类似,可以存储不同类型的数据,但不同点是元组中的元素是非可变对象时不能修改

(二)元组的使用

访问元组中的元素只能通过索引下标或者遍历两种方式

# 索引下标
tuple = (1, "aa")
tuple[1]  # 获取元组中索引为1的元素,结果为aa
# for循环
for item in tuple:
    print(item)

(三)注意


元组中的元素无法修改,指的是当元组中的元素为不可变对象时,该元素不能修改,当元素为可变对象时,在不改变元素类型的前提下,可以修改可变对象类型的元素;

可变对象:list列表,dict字典和set集合
不可变对象:tuple元组,string字符串,int整型,float浮点型和bool布尔型



二、集合

(一)什么是集合

集合也是一个能存储多个/多种数据类型的容器,使用{}定义集合,其最大的特点就是存储的数据不会重复,即使往集合中添加两个相同的数据,最终显示的数据也只有一个。

list = {1, 2, 3, 3}
print(list)

结果为:{1, 2, 3}

(二)集合的特点

集合的特点有:

(1)元素唯一性,在同一个集合中的所有元素都是唯一的
(2)无序性,集合对数据进行了哈希,所以集合中的元素是无序的,也就无法通过索引下标获取集合中的元素,只能通过遍历取出集合中的值。


(三)交并差运算

两个集合之间可以进行交并差运算,即使用&,|,-,^进行运算,以g1,g2为例:

g1 = {1, 2, 3}
g2 = {3, 4, 5}
# &运算,取两个集合的交集
g1 & g2  # 结果为3
# |运算,取两个集合的并集
g1 | g2  # 结果为{1, 2, 3, 4, 5}
# -运算,取两个集合的差集,就是移除g1中g2的数据
g1 - g2  # 结果为{1, 2}
# ^运算,取两个集合的对称差集,即取两个集合除去共有部分的所有数据
g1 ^ g2  # 结果为{1, 2,4,5}

三、元组和集合异同点

目前接触到的容器类型有列表,元组和集合,三种类型存在相同和不同点,

(1)相同点:列表,元组和集合都可以存储数据、

(2)不同点:

        a)  元组中的元素若为不可变对象时,值不能修改

        b)  集合因其特殊的存储方式,集合中的元素不能也不会重复,具有唯一性和无序性

        c)  列表的元素可以修改,可以重复,并且有序


四、容器类型的类型转换

这里可以互转的容器只有列表,元组和集合,并不包含字典

(一)基本使用

list1 = [1, 2, 3]
tuple1 = (4, 5, 6)
set1 = {7, 8, 9}
# 列表转元组
list_to_tuple = tuple(list1)  # 结果为(1, 2, 3)
# 列表转集合
list_to_set = set(list1)  # 结果为{1, 2, 3}
# 元组转列表
tuple_to_list = list(tuple1)  # 结果为[4, 5, 6]
# 元组转集合
tuple_to_set = set(tuple1)  # 结果为{4, 5, 6}
# 集合转列表
set_to_list = list(set1)  # 结果为[8, 9, 7]
# 集合转元组
set_to_tuple = tuple(set1)  # 结果为(8, 9, 7)

(二)快速去重

由于集合中元素具有唯一性,结合上方类型互转的方法,可以使用set对list列表或tuple元组进行快速去重;

list1 = [1, 2, 3, 3, 4, 3, 4, 3]
tuple1 = (4, 5, 6, 3, 2, 1, 3, 6)
list1_to_set1 = set(list1)  # 结果为{1, 2, 3, 4}
tuple1_to_set2 = set(tuple1)  # 结果为{1, 2, 3, 4, 5, 6}

五、字典

(一)字典的简介

字典也是存储数据的一种容器,与其他三种不同的是字典以键值对的方式存储数据,也就是key-value,key相当于自定义的下标,而value是索引下标对应的值;

格式:

{key1: value1, key2: value2....., keyn: valuen}

 (二)示例

需求:定义一个字典,存储姓名、年龄和地址

stu_info = {
    "name": "jack",
    "age": 18,
    "address": "china"
}

说明:一个字典中可以存储多个数据,查询字典元素时通过key找到对应的元素,key就是上述的,name,age和address。

根据key访问元素:

stu_info["name"]  # 结果为jack
stu_info["age"]  # 结果为18
stu_info["address"]  # 结果为china

(三)遍历字典

与字典相关的方法主要有三个:keys,values和items,使用for循环遍历字典,结合这三个方法可以获取字典中的key,value和item项,以上文的stu_info为例;

(1)keys

# 遍历字典的每一个key,并输出
for key in stu_info.keys():
    print(key)

输出结果为:

 

(2)values

# 遍历字典的每一个value,并输出
for value in stu_info.values():
    print(value)

输出结果为:

(3)items

# 遍历字典的每一项,并输出
for item in stu_info.items():
    print(item)

输出结果为:

(四)字典的常见操作

增删改查就是字典最常见的操作,仍然以上文的stu_info为例;

(1)增加数据

新增数据就是通过新的key和value,以变量名['key']=value的方式就行实现数据的新增

stu_info = {
    "name": "jack",
    "age": 18,
    "address": "china"
}
stu_info["sex"] = "man" # 新增sex这个key,value为man
print(stu_info)

输出内容为:

(2)删除数据

删除数据主要有两种方式,一种是使用del删除指定的元素,另一种是使用clear方法删除整个字典中的数据;

  • del 删除指定的元素
stu_info = {
    "name": "jack",
    "age": 18,
    "address": "china"
}
del stu_info["age"] # 删除age这个key
print(stu_info)

输出结果为:

注意,如果del指定的元素不存在于字典中,则会报KeyError的异常,所以使用del删除元素前建议先判断元素是否存在

#删除stu_info字典中的sex
del stu_info["sex"]

代码执行报错:

  • clear删除整个字典的数据
stu_info = {
    "name": "jack",
    "age": 18,
    "address": "china"
}
stu_info.clear()
print(stu_info)

输出结果为:

(3)修改数据

修改数据也是通过变量名['key']=value的方式,key存在,就是修改数据,不存在就是新增数据

stu_info = {
    "name": "jack",
    "age": 18,
    "address": "china"
}
stu_info["age"] = 20
print(stu_info)

输出结果如下,age由原先的18变成20

(4)查询数据

数据查询有两种方式,一种是通过key直接获取value,如果key不存在就会报KeyError的异常,另一种是使用get方法获取,假设key不存在,则可以通过get的另一个形参显示提示内容;

  • 普通方式
stu_info = {
    "name": "jack",
    "age": 18,
    "address": "china"
}
print(stu_info["age"])  # 输出18
  • get方法
stu_info = {
    "name": "jack",
    "age": 18,
    "address": "china"
}
print(stu_info.get("age"))  # 输出18
print(stu_info.get("sex", "key不存在"))  # 输出key不存在

总结

本篇文章主要讲python的容器,列表、元组、集合和字典,不同容器有不同的特点和用法,相信在这个过程中你已经了解了其中的奥秘,下篇文章开始讲函数,下回见!

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值