Python中的数据结构:元组、字典、列表、集合(修改中)

本文主要介绍Python中元组、字典和集合的相关知识。元组元素不可修改,但可包含对象,有增、查操作;字典是无序对象集合,用键值对存储,有定义、访问、合并、增删改查等操作;集合是键的集合,无重复元素,可进行并集、交集、差集运算。

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

# -*- codeing = utf-8 -*-
# @Time : 2021/2/25 16:38
# @Author : bolin
# @File : demo3.py
# @Software : PyCharm

元组

  • 元组tuple与list类似,不同之处在于tuple的元素不能进行修改。tuple写在小括号里
  • 元组元素不可变,但可以包含对象
tup1 = ()   #创建新的元组,<class 'tuple'>

tup2 = (50) #不是元组,<class 'int'>
#可以加一个,来区分元组

print(type(tup1))

print(type(tup2))
tup1 = ("abc","def",2000,2020.333,555,666)

print(tup1[0])      #访问第一个数据
print(tup1[-1])     #访问最后一个数据
print(tup1[1:5])    #左闭右开,进行切片
  • 在内存空间直接新建一个元组,连接两个元组
tup1 = (12,34,56)
#tup1[0] = 100   #报错,不允许修改

tup2 = ("abc","xyz")
tup = tup1 + tup2
print(tup)
tup1 = (12,34,56)
print(tup1)

del tup1    #删除了整个元组变量,不允许删除某一个值

print("---删除后---")
print(tup1)
tup1 = (12,34,56)
#tup1[0] = 100   #报错,不允许修改
  • 查 直接访问元组的过程

字典

  • 字典是无序的对象集合,使用键值对(key-value)存储
  • 键必须是不可变类型
  • 同一字典中,键是唯一的,值可以重复
  • 键值对之间使用 : 进行连接,每个键值对使用 , 连接
  • 字典的定义 字典使用的是{ },中间的键值对连接和元组相同
info = {"name":"吴彦祖","age":18}
  • 字典的访问 查找键,显示值
print(info["name"])
print(info["age"])
  • 访问不存在的键
#print(info["gender"])   #直接访问会报错,通过
print(info.get("gender"))   #适应get方法,没有找到对应的键,默认返回:none

print(info.get("age","20"))
print(info.get("gender","m"))   #没找到的话,设定显示默认值
  • 字典的合并
  • 合并相同的项,使用update后面的项直接覆盖,不同的项则按照顺序显示
dict1 = {"name":"吴彦祖","age":28,"特点":"高,富,帅!!!"}
dict2 = {"name":"刘德华","age":56,"备注":"无子无女"}

print("---合并前---")
print(dict1)
print(dict2)

dict1.update(dict2)     #只更新dict1,不更新dict2

print("---合并后---")
print(dict1)
print(dict2)

—合并前—
{‘name’: ‘吴彦祖’, ‘age’: 28, ‘特点’: ‘高,富,帅!!!’}
{‘name’: ‘刘德华’, ‘age’: 56, ‘备注’: ‘无子无女’}
—合并后—
{‘name’: ‘刘德华’, ‘age’: 56, ‘特点’: ‘高,富,帅!!!’, ‘备注’: ‘无子无女’}
{‘name’: ‘刘德华’, ‘age’: 56, ‘备注’: ‘无子无女’}

info = {"name":"吴彦祖","age":18}
info["id"] = input("请输入新的学号:")

print(info["id"])
  • [del] :直接删除整个键值对或者字典
info = {"name":"吴彦祖","age":18}
print("---删除前---%s"%info["name"])

del info["name"]     #删除的不仅仅是值,删的是整个键值对
print("删除后:%s"%info["name"])
  • 删除字典
info = {"name":"吴彦祖","age":18}
print("---删除前---%s"%info)

del info
print("---删除后---%s"%info)   #删除字典后,再次访问报错
  • [clear]:清除数据
info = {"name":"吴彦祖","age":18}
print("---删除前---%s"%info)

info.clear()    #清空键值对,字典存在,访问为空

print("---删除后---%s"%info)
info = {"name":"吴彦祖","age":18}

info["age"] = 20
print(info["age"])
info = {"id":1,"name":"吴彦祖","age":18}
print(info.keys())  #得到所有的键(列表)

print(info.values())    #得到所有的值(列表)

print(info.items())     #得到所有的项(列表),每个键值对是一个元组
  • 遍历所有的值
info = {"id":1,"name":"吴彦祖","age":18}

for value in info.values():
    print(value)
    
#遍历所有的键值对
for key,value in info.items():
    print(key,value) 
    print("key=%s,value=%s"%(key,value))
  • 枚举: 使用enumerate()同时拿到列表中的下标和元素内容
mylist = ["a","b","c","d"]

for i,x in enumerate(mylist):
    print(i,x)

集合(set)

  • 键的集合,不存储值,且键不能重复,set是无序的,重复元素会被过滤
  • set可以看作数学意义上的无序和无重复的集合,可以进行并集、交集、差集
s1 = set([1,2,3])
print(s1)

s2 = set([1,1,2,2,3])
print(s2)

简单的总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值