元组与字典

本文详细介绍了元组和字典这两种数据结构。首先讲解了元组的定义,强调其不可变的特性,并通过示例展示元组的使用。接着讨论了拆包和装包的概念,特别是针对元组的操作。然后转向字典,阐述了字典的定义、特点以及字典的增、改、查、删等基本操作。最后,文章总结了元组和字典的关键点,为读者提供了全面的理解。

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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:本文主要介绍: 元组,字典


提示:以下是本篇文章正文内容,下面案例可供参考

一、元组的定义?

示例:
‘’’
元组:
类似列表(当成容器)
特点:
1.定义的符号:()
2.元组中的内容不可修改
3.关键字:tuple

列表 元组
[] ()
[1] (1,)
[1,2] (1,2)
‘’’

t1=()
print(type(t1)) #<class 'tuple'>

t2=(1)
print(type(t2)) #类型为int

t3=('Hello')
print(type(t3)) #类型为str

t4=('aa','bb')
print(type(t4)) #类型为tuple

#
t5=(3,5,7,8,1,4,0,6,4,6,7)

#增 删 改 查
import random
list1=[]
for i in range(10):
	ran= random.randint(1,20)
	list1.append(ran)
print(list1)

# tuple()
#list()

t6= tuple(list1)
print(t6)


#查询: 下标 index  切片 [:]
print(t6[0])
print(t6[-1])

print(t6[2:-3])
print(t6[::-1])

#最大值 最小值
print(max(t6))
print(min(t6))

#求和
print(sum(t6))

# 求长度
print(len(t6))

# 元组中的函数:
# index()
# count()

print(t6.count(4))  #元组中4的个数

print(t6.index(4))  #从t6这个元组中找出4的下标位置,没有报错:ValueError: tuple.index(x): x not in tuple

二、拆包和装包

1.拆包的方法:

#拆包
t1=(4,7,3)

#a,b = t1  # 
# x,y,z=(6,)

a,b,c = t1

print(a,b,c)

a=t1
print(a)

#s1='hello'
#s2=s1

2.变量个数与元组个数一致

# 变量个数与元组个数不一致
t1=(2,5,8,9,7)

a,*_,c =t1
print(a,c,_)

a,c,*_=t1
print(a,c,_) #其中的_的内容是列表的形式

a,b,*c=t1
print(a.b,c)


t1=(9,4,8,6)

a,*b=t1
print(a,b)   #*b 表示未知个数0-n,0-- []  多个袁术的话 ~[1,2,3,4,...]

print(*b)

3 元组的一些方法

'''
  字符串
  列表
'''

'''

元组:
1.符号:(1,2,3) tuple
2.关键字:tuple
3. 元组的元素只能获取,不能增删改
符号:
+ 
*
is not
is not in

系统函数
max()
min()
sum()
len()
sorted()  ---------> 排序,返回的结果就是列表
tuple() ---强制类型转换

元组自带的函数:
index()
count()

拆装包:
x,*y=(1,2,3,4,5)
print(y)
print(*y)
'''
t2=(4,5)+(1,2)

print(t2)

t3 = (3,4)*2

print(t3)

print(t2 is t3)

print(3 in  t3)


print(3 not in  t3)


print(sorted(t2))

print(tuple(sorted(t2)))

4 字典的定义

#dictionary字典
‘’’

应用:
貂蝉 — [‘屠龙刀’,‘手榴弹’]
诸葛亮 — [‘鹅毛扇’,‘碧血剑’,‘98k枪’] 300

‘’’
‘’’
字典:
特点:
1.符号:{}
2,关键字:dict
3,保存的元素是:key : value -对

列表 元组 字典
[] () {}

list tuple dict
ele ele key:value
[].appebd(8)

element 元素

‘’’

'''
#定义
dict1 = {} # 空字典

dict2 = dict() #空字典 list1 = list() 空列表 tuple1 = tuple()

dict3= {'ID':'827273773747474','name':'lucky','age':18}

#dict4=dict(('name','lucky')) #{'name':xxx,'lucky':xxx}
#print(dict4)

dict4=dict([('name','lucky'),('age',18)]) #'name':'lucky','age':18

#dict5= dict([(1,2,3),(4,5),(6,8),(9,0)])
#print(dict5)

# 注意: list 可以转换成字典 但是 前提: 列表中元素都要成对出现

# 字典的增删改查:

5 字典的增修改查

#增加:
dict6= {}
# 格式dict6[key]=value
dict6['brand']='huawei'

print(dict6)


#字典的修改
#特定: 按照上面的格式,如果在字典中存在同名的key,则发生值的覆盖(后面的值覆盖原来的)
#    如果没有同名的key,则实现的添加功能(key:value)

dict6['brand'] ='mi'

print(dict6)

dict6['type']='p30 pro'

dict6['price']=9000

dict6['color']='黑色'

print(dict6)

6 字典的案例

'''
案例:
用户注册功能

username
password
email
phone

'''

print('-------欢迎来到智联招聘用户注册-----------')
#,模拟数据库
database=[]
while True:
	username=input('请输入用户名')
	password=input('输入密码:')
	repassword=input('输入确认密码:')
	email=input('输入邮箱:')
	phone= input('请输入手机号')
	#定义一个字典
	user={}
	#将信息保存到字典中
	user['username']=username
	if password == repassword:
		user['password']=password
	else:
		print('两次密码的不一致')
		continue
		user['email']=email
		user['phone']=phone

    # 保存到数据库
	database.append(user)
	answer=input('是否继续注册')
	if answer!='y':
		break
print(database)

7字典的修改

'''
增加元素(key:value)
dict[key]=value ----->{key:value}
特点: key在字典中是唯一的
{'name:'tom','namw':'aaa'} 错误定义
['张三':100,'李四':100,'王五':100]


增加元素对比:
list1=[]
list.append(elment)

dict1={}
dict1[key]=value

修改:
list1[index]=newvalue

dict1[key]=newvalue

查询元素:
list1[index]----> element

dict1[key]---------->value

取值:字典都是根据key获取value的值
'''
list1=[3,5,7,8]
print(list1[2]) #列表中找元素根据下标

dict1={'1':'张三','2':'李四','3':'王五'}
dict1['2']
print(dict1['2']) #字典中找元素根据key

dict2={'张三':100,'李四':100,'王五':89,'赵柳':99}

print(dict2['王五']) # key


# 考试分数大于90分的人
# 尝试对字典遍历
for key,value in dict2:
	print(key,value)

for key in dict2:
	print(key)

在这里插入图片描述

字典的函数

values()
keys()
items()
get()

# 遍历的结果是:就是字典的key

#字典里面的函数:
#items() values() keys()

print(dict2.items())

#考试分数大于90分大
for i in dict2.items():
	print(i)  #('zhangsan',100)
# a,b = ('aa','bb')
for key,value in dict2.items():
	# print(key,value)
	if value=90:
		print(key)
# values 取出字典中所有值
result=dict2.values()
print(result)

# 求所有学生考试成绩的平均分
for score in dict2.values():
	print(score)
totall=sum(dict2.values())
avg=totall/len(dict2.values())
print(avg)

# keys():获取字典中所有key建 (键值对)
 
names=dict2.keys()
print(names)
for name in names:
	print(name)

# 找人: in 也可以用于字典操作 用于判断元素有没有在字典的key中出现
# 8 in list1

print('王五' in dict2)

'''
1.根据key获取值,如果key在字典中没有存在则报出keyerror
  dict[key]=value
2.字典的内置函数: get()
    get(key)---------> value 如果取不到值则不会报错,则返回none
    get(key,default)----------> value 如果能够取到值则返回字典中的值,如果取不到则返回默认的值
    items()
    keys()
    values()SS
'''

print(dict2['赵飞'])
print(dict2.get('赵飞'99)) 

8 字典的删除操作

#删除:
dict1={'张三':100,'李四':100,'王五':89,'赵柳':99}

list1=[3,7,9,0]

del list1[1]

print(list1)

del dict1['王五']

print(dict1)


#字典的内置函数: 删除
#dict1.remove('李四') 不存在 报错的
# pop(key[,defaut])  ------->根据key删除字典中的键值对,返回值是只要删除成功,则返回键值对的值value
# pop的默认值。往往是在删除的时候没有找到对应的key,则返回default默认值
#print(result)

result = dict1.pop('张小三',80)
print('=====>',result)
print(dict1)

# popitem():随机删除字典中的键值对(一般是从末尾删除元素)
dict1={'张三':100,'李四':100,'王五':89,'赵柳':99}

result=dict1.popitem()
print(result)

print(dict1)

#clear()同列表的clear
dict1.clear()
'''
删除:
del dict[key]

dict.pop(key[,default])

dict.popitem

dict.clear()

'''


'''
其他内置函数:
update() []+[] 合并操作
fromkeys(seq,[default])  ----> 将seq 转换成字典的形式 如果没有指定的值为None
                               {'aa':none},'bb':none ,'cc':none}
                               ----> 如果指定默认值为10{'aa': 10, 'bb': 10, 'cc': 10}

'''

dict1={0:'tom',1:'jack',2:'lucy'}

dict2={0:'lily','4':'ruby'}

result=dict1.update(dict2)

print(result)

list1=['aa','bb','cc']
new_dict=dict1.fromkeys(list1,10)
print(new_dict)

总结

本文主要介绍字典和元组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值