python_元组(tuple)与字典类型

本文深入探讨了Python中的三种核心数据结构:元组、字典和集合。详细讲解了元组的不可变特性、访问和排序方法,字典的键值对操作及集合的唯一性与常用操作。适合初学者和进阶开发者阅读。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

目录

一. 元组(tuple)

     1.1 元组的创建

     1.2 元组的访问

     1.3 元组的排序

     1.4 推导式生成元组

二. 字典

     2.1 字典的创建

     2.2 字典的访问

     2.3 字典的常用方法

     2.4 字典的添加、修改、删除

三. 集合

      3.1. 集合的常用操作



一. 元组(tuple)

     ①元组属于不可变数列,列表属于可变数列。即创建后即不可修改。元组没有增加元素、修改元素、删除元素的方法

     ②但是访问元素、拼接元素、切片操作、运算操作、计数操作还是可以使用的。

     ③元组的访问和处理速度比列表快

     ④与整数和字符串一样,元组可以作为字典的键,但是列表则不可以

     1.1 元组的创建

               ① ()创建:a = (1,2,3)  或者是省略(),直接a = 1,2,3 都可以创建元组对象

                   注意:如果元组对象只有一个,创建时要在后面加, a = (1,),否则解释器会把a作为一个整数来处理

               ②通过tuple()创建:a = tuple(可迭代对象)  a=tuple('a,b,c')  a=tuple(range(3))  a=tuple([a,b,c])

     1.2 元组的访问

               元组的访问与列表的访问基本一致,可通过下标、切片(开始下标、结束下标、步长)等方式进行访问

     1.3 元组的排序

              可以通过sorted()函数完成元组的排序,sorted方法生成的总是列表对象

              max()、min()、sum()等方法均可使用

     1.4 推导式生成元组

              可以通过推导式生成元组的方式:a = (x * 2 for x in range(5))

               tuple(a) 的值就是(0,2,4,6,8)

               a首先是生成的生成器对象,该对象只能通过指针访问一次,然后通过tuple函数转换成元组对象

               生成器对象还可以通过__next__()函数,一个一个的通过指针完成访问,注意,是两个下划线

               a.__next__(),此时是访问a中的第一个指针位置元素:0

               a.__next__(),此时是访问a中的第二个指针位置元素:2

               以此类推

二. 字典

        简介:

             ①:字典是键值对的无序可变序列,KV形式的序列,通过键找值

             ②

     2.1 字典的创建

          ①. 通过{}、dict()来创建字段对象,dict()结合列表元组的方式创建字典

a = {'name': '张三', 'age': 18, "store": [1,2,3]}
b = dict(name="张三", age=18, store=[1, 2, 3])
# dict()结合列表元组的方式创建字典, 列表中时元组,每一个元组代表一个键值对
c = dict([('name', '张三'), ('age', 18), ("store", [1,2,3])])

          ②.通过zip方式创建字典对象,将两个列表打包成键值对

k = ["name", "age", "store"]
v = ["张三", 18, [1, 2, 3]]
kv = dict(zip(k, v))

          ③. 通过fromkeys创建值为空的字典

d = dict.fromkeys(["name", "age", "store"])

     2.2 字典的访问

a = {'name': '张三', 'age': 18, "store": [1,2,3]}
# 1. 通过[]访问,如果键不存在,则会抛出异常
print(a["name"])
print(a["namesss"])  #抛出异常

# 2. 通过get()方法获取键值,如果键不存在,则返回none,或者指定的返回字符串,推荐使用
print(a.get("name"))
print(a.get("namesss", "不存在返回的字符串"))   #返回值:不存在返回的字符串

     2.3 字典的常用方法

a = {'name': '张三', 'age': 18, "store": [1,2,3]}
# 1. 列出所有键值对
a.items()
# 2. 列出所有键/值
a.keys()
a.values()
# 3. 获取字典对象键值对的长度
len(a)
# 4. 检测一个键是否存在于字典对象中,返回true/false
"name" in a

     2.4 字典的添加、修改、删除

dict_a = {"name":"张三", "age":18, "store":[1,2,3]}
# 1.直接添加,如果键不存在,则直接添加,如果键已经存在,则直接覆盖
dict_a["address"] = "杭州市"
print(dict_a)

# 2. update(),将新字典中的键值对全部添加到旧字典的键值对中,如果存在,直接覆盖
b = {"name":"李四", "sex":"男", "phone":"13088888888"}
dict_a.update(b)
# 此时dict_a={'name': '李四', 'age': 18, 'store': [1, 2, 3], 'address': '杭州市', 'sex': '男', 'phone': '13088888888'}

# 3.字典的删除
#   del(dict_a["age"]) 可以直接删除指定的键
#   b = pop("sex") 将指定的键删除,并返回该键的值给b
#   dict_a.clean()  将该字典的所有键值对清空

# 4.随机删除popitem()方法,因为字典是无序的,所以调用该方法时,会随机删除键值对,并返回键的值
print(dict_a.popitem())

# 5.序列解包:类似于迭代器的意思,将元组、列表、字典通过简易写法完成复制,可以方便的对多个变量赋值

print(dict_a)
a, b, c = (1, 2, 3)
d, e, f = [4, 5, 6]
# 赋值字典的所有键,字典的序列解包必须要与字典的值个数一致,否则就会报错
h, i, j, k, l = dict_a
# 赋值字典的值
h, i, j, k, l = dict_a.values()
# # 赋值字典的键值,返回值为元组
h, i, j, k, l = dict_a.items()

 

三. 集合

集合的底层实现就是字典,只有字典的键对象,并且是不能重复的唯一值

      3.1. 集合的常用操作

# 1.使用{}创建,使用add()添加元素
set_a = {1, 2, 3}
# 因为集合不能重复,所以再add一个1,该集合的值不会改变
set_a.add(1)
# 2.使用set()函数,将列表、元组等可迭代对象转为集合对象
list_a = ["a", "b", "c"]
set_b = set(list_a)

# 3. remove()删除指定元素,clean()清空集合
set_a.remove(1)
set_b.clear()
# 4.集合的相关操作,交集并集差集
a = {1, 2, "x"}
b = {3, 4, "x"}
# 并集,结果为{1,2,"x",3,4}
a | b
a.union(b)
# 交集,结果为{"x"}
a & b
a.intersection(b)
# 差集,结果为{1,2}
a - b
a.difference(b)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值