python入门day07元组&&字典

元组的使用

#元组
#类似列表,也是一个容器,但是他的内容不可以修改,没有增删改,只能查
#定义,用()
t1=()
print(type(t1))#<class 'tuple'> 空元组
t2=('hello')
print(type(t2))#<class 'str'> 如果只有一个元素,需要在其后面加一个逗号
t3=('hello',)
print(type(t3))#<class 'tuple'>
t4=('hello','hi')
print(type(t4))#<class 'tuple'> 如果有多个元素,其后面则不需要加逗号

#增删改无用
# t1.append()
# t1.pop()
#那么如何放元素进入元组?
tuple2=(1,2,3)
print(tuple2)#(1, 2, 3)

list1=[3,4,7,2,1]
tuple1=tuple(list1)
print(tuple1)#(3, 4, 7, 2, 1)



#元组查询:下标tuple[index]  切片[::]
print(tuple1[0])#3
print(tuple1[-1])#1
print(tuple1[::-1])#(1, 2, 7, 4, 3)
print(tuple1[2:-1])#(7, 2)

#最大值最小值
print(max(tuple1))#7
print(min(tuple1))#1

#求和
print(sum(tuple1))#17
#求长度
print(len(tuple1))#5
#求元组中某个元素的个数
l2=[1,4,4,4,6,7]
#统计元组中4的个数
print(l2.count(4))#3
#统计元组中数字4的下标
print(l2.index(4))#1

拆包和装包

#拆包和装包

#装包  多--->,将多个数据装进一个包中
names='tom','tony','rose'
print(names)#('tom', 'tony', 'rose')
print(type(names))#<class 'tuple'>

group=100,[1,2,3],'tom',('a','b')
print(group)#(100, [1, 2, 3], 'tom', ('a', 'b'))
print(type(group))#<class 'tuple'>
#拆包  一--->多,将一个序列类型数据拆成多个数据
tuple1=(1,2,3,'tom')
a,b,c,d=tuple1
print(a)#1
print(b)#2
print(c)#3
print(d)#4
print(tuple1)#(1, 2, 3, 'tom')


# 变量个数与元组元素个数不匹配,报错
# a,b=tuple1
# a,b,c,d,e,f=tuple1


#序列的元素个数多于变量个数时
#可将非第一位的变量前加星号(*)
#拆包的变量中只能有一个变量前可加星号(*)
#这个星号表示它后边的变量是个列表
# 变量个数与元组元素个数不匹配,报错
# a,b=tuple1
tuple1=(1,2,3,'tom')
a,*b=tuple1
print(a)#1
print(b)#[2, 3, 'tom']
a,*_,c=tuple1
print("this----------------------")
print(a,c,_)#1 tom [2, 3]
a,c,*_=tuple1
print(a,c,_)#1 2 [3, 'tom']
a,c,*b=tuple1
print(a,c,b)#1 2 [3, 'tom']

#
print(b)#[3, 'tom']
print(*b)#3 tom
#也有元素少于变量的拆包情况, 但元素个数不能少于非带星号的变量个数,这时,带星号的变量将返回一个空的列表
# 变量个数与元组元素个数不匹配,报错
# a,b,c,d,e,f=(1,2)
tuple2=(1,2)
a,b,*c=tuple2#*b表示未知个数0-n
print(a)#1
print(b)#2
print(c)#[]
# print(*c)#空格

元组总结

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

符号:
+
*
is
in
not in

系统函数:
len()
max()
min()
sum()
sorted()----能排序,但返回的结果是列表
tuple()—元组类型的强制转换

元组自带函数:
index()—返回某元素的位置
count()–返回某元素的个数

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

字典

增改

# 现在重新开始游戏,貂蝉的武器和积分就不见了,因为貂蝉跟武器没有绑定
'''
字典:
    特点:
    1.符号
    2.关键字
    3.保存的元素是:key:value
    列表    元组    字典
    []     ()     {}
    list   tuple   dict
    ele     ele    key:value

'''

tuple1=()
print(type(tuple1))#<class 'tuple'>
print(type(tuple()))#<class 'tuple'>
list1=[]
print(type(list1))#<class 'list'>
print(type(list()))#<class 'list'>


#定义空字典
dict1={}
print(type(dict1))#<class 'dict'>
dict2=dict()
print(type(dict2))#<class 'dict'>

#list=['937781164764','lucky',18]
dict3={'ID':'937781164764','name':'lucky','age':18}

#元组转字典
# tuple2=('name','lucky')
# dict4=dict(tuple2)#报错,  {'name':xxx,'lucky':xxx}

#列表和元组都可以转为字典,前提是列表中元素都要成对出现
list2=[('name','lucky'),('age',18)]
tuple2=(('name','lucky'),('age',18))
dict4=dict(list2)
print(dict4)#{'name': 'lucky', 'age': 18}
dict4=dict(tuple2)
print(dict4)#{'name': 'lucky', 'age': 18}

#字典的增删改查
#1.增改
#特点:
#如果没有同名的key,则增加
#如果有同名的key,覆盖原来的value---改
dict6={}
dict6['brand']='huawei'
print(dict6)#{'brand': 'huawei'}
dict6['brand']='xiaomi'
print(dict6)#{'brand': 'xiaomi'}
dict6['type']='p30 pro'
dict6['price']='9000'
dict6['color']='黑色'
print(dict6)#{'brand': 'xiaomi', 'type': 'p30 pro', 'price': '9000', 'color': '黑色'}



案例

'''
案例:
用户注册功能
[{一个人的注册信息},{一个人的注册信息},{一个人的注册信息}]
'''
database=[]#模拟数据库,存放多个用户
while True:
    print('------欢迎来到用户注册------')
    #1定义一个字典
    user={}
    #2将信息保存到字典中
    username = input('请输入用户名')
    user['username']=username
    password = input('请输入密码')
    repassword = input('输入确认密码')
    if password==repassword:
        user['password']=password
    else:
        print('两次密码不一致!请重新输入')
        continue
    email = input('请输入你的邮箱')
    user['email']=email

    #3保存到数据库
    database.append(user)

    answer=input('是否继续注册(Y/N)')
    if answer!='Y':
        break

print(database)

查询

#字典常用方法
#字典key唯一,value可以不唯一
# [{},{},{}]
'''
列表与字典添加元素(元组不能增删改)

list1=[]
list1.append(ele)

dict1={}
dict1[key]=value

修改元素:
list1[index]=newval

dict1[key]=newval

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

dict1[key]--->value  字典都是根据key获取value,而不是根据下标
'''

list1=[3,5,7,8]
print(list1[2])#7

dict1={'0':'张三','1':'李四','2':'王五'}
print(dict1['2'])#5

dict2={'张三':100,'李四':99,'王五':89}
print(dict2['王五'])#89
# print(dict2['123'])这种取法如果取不到就会报错
print(dict2.get('王五'))#89
print(dict2.get('111'))#None
print(dict2.get('111',0))#0  如果取不到,返回指定的默认值

#考试分数大于90分的人
#尝试对字典遍历---单独遍历字典的结果是对字典的key进行遍历
for i in dict2:
    print(i)
# 张三
# 李四
# 王五

#字典里的函数:
#items() 将字典的键值对保存为列表的保存形式{key:val,key:val}---[(key,val),(key,val)]
# values() 取出字典中所有值存放到列表中-----------------------[val,val,val]
# keys()   取出字典中所有key存放到列表中-----------------------[key,key,key]

#1.items
dict2={'张三':100,'李四':99,'王五':89}
print(dict2.items())#dict_items([('张三', 100), ('李四', 99), ('王五', 89)])
for x in dict2.items():
    print(x)
'''
('张三', 100)
('李四', 99)
('王五', 89)
'''
a,b=('张三', 100)#拆包
print(a,b)#张三 100

for key,value in dict2.items():
    if value>90:
        print(key)
'''
张三
李四
'''


#2.values取出字典中所有值存放到列表中
print(dict2.values())#dict_values([100, 99, 89])
for score in dict2.values():#对列表遍历
    print(score)

#求所有学生的考试平均成绩
score_list=dict2.values()
total=sum(score_list)
avg=total/len(score_list)
print(avg)#96.0


#2.keys()
name_list=dict2.keys()
print(name_list)#dict_keys(['张三', '李四', '王五'])

for name in name_list:
    print(name)

#找人---- in 可以用于操作字典,用于判断元素有没有在字典的key中出现 。字典中默认找的是key
print('王五' in dict2)#True


删除

#字典删除
#列表删除del list[index]
list1=[3,7,9,0]
del list1[1]
print(list1)#[3, 9, 0]

dict1={'张三':100,'李四':100,'王五':89,'赵柳':99}
del dict1['王五']
print(dict1)#{'张三': 100, '李四': 100, '赵柳': 99}
#del dict1['haha']  没有则报错
#字典的删除内置函数

# dict1.remove('李四') 报错,没有这个方法
result=dict1.pop('李四') #删除这个键值对并返回对应的value
print(result)#100
print(dict1)#{'张三': 100, '赵柳': 99}
result=dict1.pop('xx','NoEle') #当字典没有这个key,就返回NoEle
print(result)#NoEle

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

#clear() 清空字典里的元素
print(dict1.clear())#None
print('*'*30)

'''
总结:
del dict[key]
dict.pop(key[,default])
dict.popitem()
dict.clear()
'''

其他内置函数

#其他的内置函数
'''
update()  类似[]+[]两个字典拼接,如果有相同的key则覆盖

'''
dict1={0:'tom',1:'jack',2:'lucy'}
dict2={0:'lily','4':'ruby'}

result=dict1.update(dict2)
print(result)#None
print(dict1)#{0: 'lily', 1: 'jack', 2: 'lucy', '4': 'ruby'}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值