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 元组的常见操作

注意:元组数据不支持修改,只支持查找

  1. 按下标查找数据
# 举例
t1 = (10,20,30)
print(t1[0])  # 结果为 10
  1. index():检测某个数据是否包含在元组中,如果在,返回这个数据开始位置的下标索引,否则报错。
# 举例
t1 = (10,20,30)
print(t1.index(20))  # 结果为 1
print(t1.index(50))  # 结果为 报错
  1. count():统计指定数据在当前元组中出现的次数。
# 举例
t1 = (10,20,30,10)
print(t1.count(10))  # 结果为 2
print(t1.count(20))  # 结果为 1
  1. len():访问元组长度,即元组中元素的个数。
# 举例
t1 = (10,20,30,10)
print(len(t1))  # 结果为 4
  1. 如果元组中的元素是列表类型,则可以修改列表中的元素
# 举例
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)
  1. del() :删除字典或删除字典中指定键值对。
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}

del dict1['name']
# 结果为 {'gender': '男', 'age': 20, 'tel': '1564566'}
print(dict1)

del dict1
# 结果为 报错 因为字典已被删除,不存在了
print(dict1)

  1. 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)
  1. key 值查找
# 如果当前查找的 key 存在,返回对应的值,否则报错
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}

print(dict1['age'])  # 结果为 20
print(dict1['id'])  # 结果为 报错
  1. 使用 get() 方法获取元素 如果字典中不存在对应的键,则将第二个参数作为返回值,默认为 None。
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}

print(dict1.get('gender'))  # 结果为 男
print(dict1.get('id'))  # 结果为 None
print(dict1.get('id','没有找到'))  # 结果为 没有找到
  1. keys() :获取字典中所有的键名。
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}

# 结果为 dict_keys(['name', 'gender', 'age', 'tel'])
print(dict1.keys())
  1. values() :获取字典中所有的键值。
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}

# 结果为 dict_values(['张三', '男', 20, '1564566'])
print(dict1.values())
  1. items() :以列表返回可遍历的 (键,值) 元组。
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}

# 结果为 dict_items([('name', '张三'), ('gender', '男'), ('age', 20), ('tel', '1564566')])
print(dict1.items())

2.3 字典的循环遍历

  1. 遍历字典的 key
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}
for key in dict1.keys():
    print(key)
# 结果为 
# name
# gender
# age
# tel
  1. 遍历字典的 value
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}
for value in dict1.values():
    print(value)

# 结果为
# 张三
# 男
# 20
# 1564566
  1. 遍历字典的元素
# 举例
dict1 = {
   'name': '张三','gender': '男','age': 20,'tel': '1564566'}
for item in dict1.items():
    print(item)

# 结果为
# ('name', '张三')
# ('gender', '男')
# ('age', 20)
# ('tel', '1564566')
  1. 遍历字典的键值对
# 举例
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 基础练习

  1. 定义一个字典,用于存储一个人的姓名、年龄、性别和电话
dict1 = {
   '姓名': '张三','年龄': 20,'性别': '男','电话': '123456'}
  1. 定义一个字典,用于存储一个人的姓名、年龄和爱好
dict1 = {
   '姓名': '张三','年龄': 20,'爱好': 'Python'}
  1. 定义一个字典,用于存储一个人的姓名、年龄和多个爱好(注意存储爱好时,要方便后期对爱好进行操作,所以建议使用列表存储)
dict1 = {
   '姓名': '张三','年龄': 20,'爱好': ['Python','零食','篮球','车']}
  1. 定义一个字典,用于存储一个人的姓名、年龄和地址(地址的存储应该分为省份、城市和区县,方便后期操作,所以建议使用字典存储)
dict1 = {
   '姓名': '张三','年龄': 20,'地址': {
   'province': 'XX省','city': 'XX市','area': 'XX县'}}
  1. 定义一个字典,用于存储一个人的姓名、年龄和三个好朋友的信息,包括朋友的姓名、性别和年龄
dict1 = {
   'name': '张三','age': 20,'friends': [
    {
   'name': '小明','gender': '男','age': 20},
    {
   'name': '小红','gender': '女', 'age': 18},
    {
   'name':'老王','gender': '男','age': 20}]}
  1. 定义一个字典,用于存储一个人的姓名、年龄和三个好朋友的信息,包括朋友的姓名、性别和地址(地址的存储应参考题目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区'}}]}
  1. 定义一个字典,用于存储一辆车的品牌和价格
dict1 = {
   'brand': '奔驰','price': 10000000}
  1. 定义一个字典,用于存储一辆车的品牌、价格和产地(产地要精确到生产厂家的具体地址,建议使用字典对省份、城市、区县、街道等进行分别存储)
dict1 = {
   'brand': '奔驰','price': 1000000,'address': {
   'province': 'xx省','city': 'xx市','area': 'xx区'}}
  1. 定义一个元组,分别存储你的3位好朋友的姓名
tuple1 = ('小明','小红','小李')
  1. 从上面元组中获取第二个元素并输出
tuple1 = ('小明','小红','小李')
print(tuple1[1])  # 结果为 小红
  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

  1. 组合嵌套题。写代码,有如下列表,按照要求实现每一个功能
  • 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']]

  1. 阅读代码,完成下面功能
""" 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,性别:
  1. 有如下字典,按照要求实现每一个功能
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}

  1. 字典应用(买水果)
  • 苹果 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
  1. 字典应用(买水果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
  1. 有如下值集合[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]}
  1. 请用代码实现:利用下划线将列表的每一个元素拼接成字符串
  • 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']

总结

希望对你有所帮助。

全部评论

相关推荐

挣K存W养DOG:玩小红书玩的,觉得自己很幽默😅
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务