Python基础篇(七)
Python基础篇(七)
前言
有些日子没出现了,士别三日甚是想念哈哈哈哈,话不多说,直接给大家上干货,准备好你们的小板凳拿起你们的小零食,让我们开始吧。
一、元组
说明:一个元组可以存储多个数据,元组内的数据是不能修改的。
1.1 元组的定义
- 语法格式
变量名 = (数据1,数据2,数据3....)
# 举例
t1 = (10,20,30)
t2 = [10,20,30]
print(type(t1)) # 结果为tuple 元组
print(type(t2)) # 结果为list 列表
""" 定义的元组即使只有一个元素,末尾也要加上逗号,否则系统认为不是元组类型 """
t4 = (10)
print(type(t4)) # 结果为 int 整型
t5 = (10,)
print(type(t5)) # 结果为 tuple 元组
1.2 元组的常见操作
注意:元组数据不支持修改,只支持查找
- 按下标查找数据
# 举例
t1 = (10,20,30)
print(t1[0]) # 结果为 10
- index():检测某个数据是否包含在元组中,如果在,返回这个数据开始位置的下标索引,否则报错。
# 举例
t1 = (10,20,30)
print(t1.index(20)) # 结果为 1
print(t1.index(50)) # 结果为 报错
- count():统计指定数据在当前元组中出现的次数。
# 举例
t1 = (10,20,30,10)
print(t1.count(10)) # 结果为 2
print(t1.count(20)) # 结果为 1
- len():访问元组长度,即元组中元素的个数。
# 举例
t1 = (10,20,30,10)
print(len(t1)) # 结果为 4
- 如果元组中的元素是列表类型,则可以修改列表中的元素
# 举例
t1 = (10,20,['a','b','c'],200)
t1[2][0]='aaaa'
print(t1) # 结果为 (10, 20, ['aaaa', 'b', 'c'], 200)
二、字典
2.1 字典的语法
- 语法格式
""" 符号为{} 数据为 键值对 形式出现 各个键值对用 逗号 隔开 name 叫做键(key) 张三:值 (value) 键和值之间使用 : 分割 键用以说明值得意义 值如果是字符串类型,需要用引号包含起来,反之不用 """
# 举例
p2 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566','weight': 120,'height': 178} # dict
print(type(p2)) # 结果为 dict 字典
2.2 字典常见操作
- 增
# 语法格式:
字典序列[key] = 值
# 注意: 如果 key 存在则修改这个 key 对应的值,如果 key 不存在则新增此键值对。
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
dict1['name'] = '狂徒'
# 结果为 {'name': '狂徒', 'gender': '男', 'age': 20, 'tel': '1564566'}
print(dict1)
dict1['id'] = 123
# 结果为 {'name': '张三', 'gender': '男', 'age': 20, 'tel': '1564566', 'id': 123}
print(dict1)
- 删
- del() :删除字典或删除字典中指定键值对。
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
del dict1['name']
# 结果为 {'gender': '男', 'age': 20, 'tel': '1564566'}
print(dict1)
del dict1
# 结果为 报错 因为字典已被删除,不存在了
print(dict1)
- clear():清空字典。
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
dict1.clear()
# 结果为 {} 空字典
print(dict1)
- 改
此操作与增的写法相似。
# 语法格式:
字典序列[key] = 值
# 注意: 如果 key 存在则修改这个 key 对应的值,如果 key 不存在则新增此键值对。
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
dict1['name'] = '狂徒'
# 结果为 {'name': '狂徒', 'gender': '男', 'age': 20, 'tel': '1564566'}
print(dict1)
- 查
- key 值查找
# 如果当前查找的 key 存在,返回对应的值,否则报错
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
print(dict1['age']) # 结果为 20
print(dict1['id']) # 结果为 报错
- 使用 get() 方法获取元素 如果字典中不存在对应的键,则将第二个参数作为返回值,默认为 None。
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
print(dict1.get('gender')) # 结果为 男
print(dict1.get('id')) # 结果为 None
print(dict1.get('id','没有找到')) # 结果为 没有找到
- keys() :获取字典中所有的键名。
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
# 结果为 dict_keys(['name', 'gender', 'age', 'tel'])
print(dict1.keys())
- values() :获取字典中所有的键值。
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
# 结果为 dict_values(['张三', '男', 20, '1564566'])
print(dict1.values())
- items() :以列表返回可遍历的 (键,值) 元组。
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
# 结果为 dict_items([('name', '张三'), ('gender', '男'), ('age', 20), ('tel', '1564566')])
print(dict1.items())
2.3 字典的循环遍历
- 遍历字典的 key
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
for key in dict1.keys():
print(key)
# 结果为
# name
# gender
# age
# tel
- 遍历字典的 value
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
for value in dict1.values():
print(value)
# 结果为
# 张三
# 男
# 20
# 1564566
- 遍历字典的元素
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
for item in dict1.items():
print(item)
# 结果为
# ('name', '张三')
# ('gender', '男')
# ('age', 20)
# ('tel', '1564566')
- 遍历字典的键值对
# 举例
dict1 = {
'name': '张三','gender': '男','age': 20,'tel': '1564566'}
for key,value in dict1.items():
print(f'{
key}={
value}')
# 结果为
# name=张三
# gender=男
# age=20
# tel=1564566
三、任务清单
3.1 基础练习
- 定义一个字典,用于存储一个人的姓名、年龄、性别和电话
dict1 = {
'姓名': '张三','年龄': 20,'性别': '男','电话': '123456'}
- 定义一个字典,用于存储一个人的姓名、年龄和爱好
dict1 = {
'姓名': '张三','年龄': 20,'爱好': 'Python'}
- 定义一个字典,用于存储一个人的姓名、年龄和多个爱好(注意存储爱好时,要方便后期对爱好进行操作,所以建议使用列表存储)
dict1 = {
'姓名': '张三','年龄': 20,'爱好': ['Python','零食','篮球','车']}
- 定义一个字典,用于存储一个人的姓名、年龄和地址(地址的存储应该分为省份、城市和区县,方便后期操作,所以建议使用字典存储)
dict1 = {
'姓名': '张三','年龄': 20,'地址': {
'province': 'XX省','city': 'XX市','area': 'XX县'}}
- 定义一个字典,用于存储一个人的姓名、年龄和三个好朋友的信息,包括朋友的姓名、性别和年龄
dict1 = {
'name': '张三','age': 20,'friends': [
{
'name': '小明','gender': '男','age': 20},
{
'name': '小红','gender': '女', 'age': 18},
{
'name':'老王','gender': '男','age': 20}]}
- 定义一个字典,用于存储一个人的姓名、年龄和三个好朋友的信息,包括朋友的姓名、性别和地址(地址的存储应参考题目4的说明,使用字典存储)
dict1 = {
'name': '张三','age': 20,'friends': [
{
'name': '小明','gender': '男','address': {
'province': 'xx省','city': 'xx市','area': 'xx区'}},
{
'name': '小红','gender': '女','address': {
'province': 'xx省','city': 'xx市','area': 'xx区'}},
{
'name': '老王','gender': '男','address': {
'province': 'xx省','city': 'xx市','area': 'xx区'}}]}
- 定义一个字典,用于存储一辆车的品牌和价格
dict1 = {
'brand': '奔驰','price': 10000000}
- 定义一个字典,用于存储一辆车的品牌、价格和产地(产地要精确到生产厂家的具体地址,建议使用字典对省份、城市、区县、街道等进行分别存储)
dict1 = {
'brand': '奔驰','price': 1000000,'address': {
'province': 'xx省','city': 'xx市','area': 'xx区'}}
- 定义一个元组,分别存储你的3位好朋友的姓名
tuple1 = ('小明','小红','小李')
- 从上面元组中获取第二个元素并输出
tuple1 = ('小明','小红','小李')
print(tuple1[1]) # 结果为 小红
- 将上面元组中的第二个元素修改为”张三“,并再次输出
tuple1 = ('小明','小红','小李')
tuple1[1] = '张三'
print(tuple1) # 结果为报错
3.2 提升练习
1、有如下字典,按照要求实现每一个功能
- dict = {‘k1’: ‘v1’,‘k2’: ‘v2’,‘k3’: ‘v3’}
# 请循环遍历出所有的key
for key in dict.keys():
print(key)
# 运行结果:
k1
k2
k3
# 请循环遍历出所有的value
for value in dict.values():
print(value)
# 运行结果:
v1
v2
v3
# 请循环遍历出所有的key和value
for item in dict.items():
print(f'{
item[0]} = {
item[1]}')
# 运行结果:
k1 = v1
k2 = v2
k3 = v3
# 请在字典中增加一个键值对,“k4”:“v4”,输出添加后的字典
dict['k4'] = 'v4'
print(dict)
# 运行结果:
{
'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'k4': 'v4'}
# 请删除字典中键值对"k1":“v1”,并输出删除后的结果
del dict['k1']
print(dict)
# 运行结果:
{
'k2': 'v2', 'k3': 'v3'}
# 请删除字典中键"k5"对应的键值对,如果字典中不存在键"k5",则不报错,返回None
result = dict.get('k5')
if result != None:
del dict['k5']
print(result)
# 运行结果:
None
# 请获取字典中"k2"对应的值
print(dict['k2'])
# 运行结果:
v2
# 请获取字典中"k6"对应的值,如果不存在,则不报错,并且让其返回None。
print(dict.get('k6'))
# 运行结果:
None
- 组合嵌套题。写代码,有如下列表,按照要求实现每一个功能
- lis = [[“k”,[“qwe”,20,{“k1”:[“tt”,3,“1”]},89],“ab”]]
- 将列表中的数字 20 变成字符串"100"
- 将列表中的字符串"1"变成数字101
# 将列表中的数字 20 变成字符串"100"
lis = [["k", ["qwe", 20, {
"k1": ["tt", 3, "1"]}, 89], "ab"]]
lis[0][1][1] = '100'
print(lis) # 结果为 [['k', ['qwe', '100', {'k1': ['tt', 3, '1']}, 89], 'ab']]
# 将列表中的字符串"1"变成数字101
lis[0][1][2]['k1'][2] = 101
print(lis) # 结果为 [['k', ['qwe', '100', {'k1': ['tt', 3, 101]}, 89], 'ab']]
- 阅读代码,完成下面功能
""" people=[] a={'name':'laosun', 'phone':13032435356, 'sex':1} b={'name':'laozheng', 'phone':13038659870, 'sex':1} c={'name':'laosong', 'phone':13032867908, 'sex':2} 将下面定义的三个字典都存储在一个名为 people 的列表中,信息都打印出来。 遍历这个列表,将其中每个人的所有信息打印出来。 """
people=[]
a={
'name':'laosun',
'phone':13032435356,
'sex':1}
b={
'name':'laozheng',
'phone':13038659870,
'sex':1}
c={
'name':'laosong',
'phone':13032867908,
'sex':2}
people = [a,b,c]
for item in people:
print(f'姓名:{
item["name"]},电话:{
item["phone"]},性别:{
"男" if item["sex"] == 1 else "女"}')
# 运行结果:
姓名:laosun,电话:13032435356,性别:男
姓名:laozheng,电话:13038659870,性别:男
姓名:laosong,电话:13032867908,性别:女
- 有如下字典,按照要求实现每一个功能
dic = {
'python': 95,
'java': 99,
'c': 100
}
# 输出字典的长度是多少
print(len(dic))
# 运行结果:
3
# 请修改’java’ 这个key对应的value值为98
dic['java'] = 98
print(dic)
# 运行结果:
{
'python': 95, 'java': 98, 'c': 100}
# 删除 c 这个key
del dic['c']
print(dic)
# 运行结果:
{
'python': 95, 'java': 99}
# 增加一个key-value对,key值为 php, value是90
dic['php'] = 90
print(dic)
# 运行结果:
{
'python': 95, 'java': 99, 'c': 100, 'php': 90}
# 获取所有的key值,存储在列表里
list1 = []
for i in dic.keys():
list1.append(i)
print(list1)
# 运行结果:
['python', 'java', 'c']
# 获取所有的value值,存储在列表里
list1 = []
for i in dic.values():
list1.append(i)
print(list1)
# 运行结果:
[95, 99, 100]
# 判断 javascript 是否在字典中
result = dic.get('javascript')
if result != None:
print('存在')
else:
print('不存在')
# 运行结果:
不存在
# 获得字典里所有value 的和
sum = 0
for i in dic.values():
sum += i
print(sum)
# 运行结果:
294
# 获取字典里最大的value
result = 0
for value in dic.values():
if value > result:
result = value
print(result)
# 运行结果:
100
# 获取字典里最小的value
result = dic['python']
for value in dic.values():
if value < result:
result = value
print(result)
# 运行结果:
95
# 字典 dic1 = {‘php’: 97}, 将dic1的数据更新到dic中
dic1 = {
'php': 97}
dic.update(dic1)
print(dic)
# 运行结果:
{
'python': 95, 'java': 99, 'c': 100, 'php': 97}
- 字典应用(买水果)
- 苹果 32.8
- 香蕉 22
- 葡萄 15.5
- 请将上面的数据存储到字典里,可以根据水果名称查询购买这个水果的费用
fruits = [{
'name': '苹果','price': 32.8},
{
'name': '香蕉','price': 22},
{
'name': '葡萄','price': 15.5}]
Fruit = input('请输入要购买的水果:')
for item in fruits:
if item['name'] == Fruit:
print(item['price'])
# 运行结果:
请输入要购买的水果:苹果
32.8
请输入要购买的水果:香蕉
22
请输入要购买的水果:葡萄
15.5
- 字典应用(买水果2)
- 小明,小刚去超市里购买水果
- 小明购买了苹果,草莓,香蕉,一共花了89块钱,,小刚购买了葡萄,橘子,樱桃,一共花了87块钱。
- 请从上面的描述中提取数据,存储到字典中,可以根据姓名获取这个人购买的水果种类和总费用。
dict1 = [{
'name': '小明', 'fruits': ['苹果', '草莓', '香蕉'], 'price': 89}, \
{
'name': '小刚', 'fruits': ['葡萄', '橘子', '樱桃'], 'price': 87}]
name = input('请输入姓名:')
for item in dict1:
if name == item['name']:
print(f'水果种类:{
item["fruits"]},价格:{
item["price"]}')
# 运行结果:
请输入姓名:小明
水果种类:['苹果', '草莓', '香蕉'],价格:89
请输入姓名:小刚
水果种类:['葡萄', '橘子', '樱桃'],价格:87
- 有如下值集合[11,22,33,44,55,66,77,88,99,90]
- 将所有大于66的值保存至字典的第一个key中,将小于66值保存至第二个key的值中。
- li = [11,22,33,44,55,66,77,88,99,90]
li = [11,22,33,44,55,66,77,88,99,90]
dict1 = {
'大于66': [],'小于66': []}
for i in li:
if i >= 66:
dict1['大于66'].append(i)
else:
dict1['小于66'].append(i)
print(dict1)
# 运行结果:
{
'大于66': [66, 77, 88, 99, 90], '小于66': [11, 22, 33, 44, 55]}
- 请用代码实现:利用下划线将列表的每一个元素拼接成字符串
- li = [‘alex’, ‘eric’, ‘rain’]
- 输入之后实现如下样子
- li = [‘a_l_e_x’,‘e_r_i_c’,‘r_a_i_n’]
li = ['alex', 'eric', 'rain']
i = 0
for item in li:
li[i] = '_'.join(item)
i += 1
print(li)
# 运行结果:
['a_l_e_x', 'e_r_i_c', 'r_a_i_n']
总结
希望对你有所帮助。