python基础----Day07

内容概要:

  1. 元组
  2. 字典

一.元组

1.元组的介绍与特点:Python 内置的数据结构之一,是一个不可变序列

#强制更改的话
stu_01 = ('1001', '陆小果', 100)
stu_01[2] = 99
print(stu_01)
#运行得到:TypeError: 'tuple' object does not support item assignment
#意思是:百度

可变与不可变序列:

  • 不可变序列:字符串、元组 (没有增、删,改的操作)
  • 可变序列:列表、字典 (可以对序列执行CRUD操作,对象地址不发生更改)
    在这里插入图片描述

2.元组的创建:

  • 直接小括号:
    在这里插入图片描述

  • 使用内置函数tuple()
    在这里插入图片描述

  • 只包含一个元组的元素需要使用逗号和小括号
    例如:

num_tuple = (10) #使用小括号,按理应该是tuple类型的
print(type(num_tuple))

结果运行得到:
<class,‘int’> 说明(10)是一个整型数值
正确使用:

num_tuple = (10,) #这个逗号不能少哦
print(type(num_tuple))

3.元组的主要使用场景: 暂时不懂的话没关系😭

  • 函数/方法 的参数类型上传递数据.
  • 执行函数/方法后, 在返回结果上实现数据的传递.

二.字典(dictionary)

1.格式:

{key1: value1, key2: value2, key3: value3}
  • key与value是一种映射关系:key --> value (类似x与y相对映)
  • key1: value1, 这是一个键值对,其实就类似于列表中的一个元素(item)
  • 所有的key的集合称为键集(keys),所有的value的集合称为值集(values),所有的键值对的集合称为键值对集(items)
#查看字典
scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60, '贼眉鼠眼': 66}
print(f'keys = {scores.keys()}')
print(f'values = {scores.values()}')
print(f'items = {scores.items()}')

在这里插入图片描述

2.字典不允许通过下标取值

scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60}
print(scores[0])

运行得到:KeyError: 0

正确的方法: 通过key来查找对应的value

#需求:查询陆小果的成绩
scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60}
print(scores['陆小果'])

如果查询的key在字典中不存在:程序就会报错

scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60}
print(scores['贼眉鼠眼'])

运行发生:KeyError

因此:
只能直接查找字典中存在的键值,但现实情况较复杂,很多时候不知道数据中是否有该值,因此需要使用if进行条件判断

scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60}
key = input('亲,请输入要查询的姓名:')
if key in scores.keys(): #键集是一个列表数据,因此可以使用in/not in来判断
    print(scores[key])
else:
    print('对不起,您输入的姓名不存在!')
#----------------------------------------------------------------
scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60}
key = input('亲,请输入要查询的姓名:')
if key in scores: 
##如果在判断中直接书写字典的名称,其实本质上就是调用了字典的keys
    print(scores[key])
else:
    print('对不起,您输入的姓名不存在!')

3.key与value的关系
在字典中,key是唯一性的,value是可以重复的.因此只能通过key来查找value,不能通过value来查找key
4.字典的各种操作(CRUD)
①查询:scores[‘陆小果’]
②增加:scores[key] = value

scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60}
scores['贼眉鼠眼'] = 70
print(scores)

③修改:scores[key] = value

scores = {'陆小果': 100, '天下无贼': 55, '认贼作父': 60}
scores['认贼作父'] = 70
print(scores)

④删除:del scores[key] 直接删除这个键值对

5.字典生成器
方法一:来硬的

#首先定义两个列表:
names = ['陆小果', '沈剑心', '菠萝吹雪', '东方不败']
scores = [100, 99, 87, 60]
#然后定义一个空字典
grades_dict = {}
for i in range(len(names)):
    key = names[i]
    value = scores[i]
    grades_dict[key] = value
print(grades_dict)    

方法二:使用zip()

names = ['陆小果', '沈剑心', '菠萝吹雪', '东方不败']
scores = [100, 99, 87, 60]
grades_dict = {}
for key, value in zip(names, scores):
    grades_dict[key] = value
print(grades_dict)

ps:方法一只适用于key与value数量恰好相等,否则会报错
而方法二如果不等则不会报错因此大多数使用方法二的zip()
6.字典的遍历
储存以下数据:
四大天王:

  • 歌神-张学友
  • 综合-刘德华
  • 舞王-郭富城
  • 文艺-黎明
#生成一个字典嵌套
four_kings_key = '四大天王'
four_kings_value = {'歌神': 张学友, '综合': 刘德华, '舞王': 郭富城, '文艺': 黎明}
four_kings_dict = {}
four_kings_dict[four_kings_key] =four_kings_value 
print(four_kings_dict)
#对字典进行遍历
#方法一
value_dict = four_kings_dict['四大天王'] #取出的任然是一个字典
for key in value_dict.keys():
    print(f'{key}{value_dict[key]}')
#方法二 items
for key_data, value_data in value_dict.items():
    print({key_data}{value_data})

over over

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w沉默味道w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值