2021-09-24——大数据学习日志——Python基础——容器类型(附练习题)

学习目标:

  • 能够说出常用 Python 容器类型的名字:列表、元组、字典、字符串、集合
  • 掌握容器类型的基本操作:定义和使用、增删改查、遍历等

01_列表

学习目标:

  • 知道定义列表的基本格式
  • 知道列表的常用操作:增删改查
  • 能够使用 for 循环实现对列表中所有元素的遍历

1.1 列表的定义

  • list(列表) 是 Python 中使用 最频繁 的数据类型
  • 专门用于存储 一组数据,存储的每个数据 称为 元素
  • 列表用 [] 定义,元素 之间使用 , 分隔
  • 列表的 索引(下标) 从 0 开始
    • 索引(下标) 就是元素在 列表 中的位置编号

"""
列表定义的格式:
列表变量的名字 = [元素1, 元素2, ……]

使用格式:
    列表变量[下标]
"""

# 列表定义
name_list = ['mike', 'yoyo', 'rock', 'lily']
#              0       1        2       3
#             -4       -3      -2       -1

# 最后一个元素取出来
print(name_list[3])
print(name_list[-1])

# 访问列表元素,不要超出范围,不要越界
# IndexError: list index out of range
# print(name_list[4])
  • 注意:从列表中取值时,如果 超出索引(下标)范围,程序会报错

1.2 列表嵌套

  • 一个列表中的元素又是列表,那么这就是列表的嵌套
school_list = [['北京大学', '清华大学'], ['中山大学', '华南理工大学'], ['哈工大', '哈工程']]
#                  0                      1                         2

# 取出第 2 个元素,也就是下标为 1 的元素
print(school_list[1])  # ['中山大学', '华南理工大学']

# 先取出下标为 1 的元素,再继续取下标为 1 的元素
# ['中山大学', '华南理工大学']
#   0            1
print(school_list[1][1])  # '华南理工大学'

1.3 列表常用操作

分类 关键字 / 函数 / 方法 说明 举例
增加 列表.append(值) 在末尾追加数据
list1 = [13, 5]

# 在列表结尾追加8
list1.append(8)
print(list1)  # [13, 5, 8]
删除 列表.remove(值) 删除第一个出现的指定数据
list1 = [13, 5, 8, 5]

# 删除第一个匹配到的5
list1.remove(5)
print(list1)  # [13, 8, 5]
修改 列表[索引] = 值 修改指定索引的数据,数据不存在会报错
list1 = [13, 5]

# 修改 索引1 对应的值
list1[1] = 2
print(list1)  # [13, 2]

list1[10] = 3  # 索引不存在,程序报错
查询 列表[索引] 根据索引取值,索引不存在会报错
list1 = [13, 5, 8]

# 获取索引1 对应的值
print(list1[1])  # 5

print(list1[10])  # 索引不存在,程序报错
len(列表) 列表长度(元素个数)
list1 = [13, 5, 8]

# 获取列表中元素的个数
length = len(list1)
print(length)  # 3
值 in 列表 判断列表中是否包含某个值,结果是 True 或 False
list1 = [13, 5, 8]
# 判断列表中是否包含数据5
if 5 in list1:  # 包含数据,返回True; 不包含,返回False
    print("列表中包含该数据")  
else:  
    print("列表中不包含该数据")
# 输出:  列表中包含该数据
排序 列表.sort() 升序排序
list1 = [13, 5, 8]
# 升序排列
list1.sort()
print(list1)  # [5, 8, 13]
# 降序排列
list1.sort(reverse=True)
print(list1)  # [13, 8, 5]

1.4 循环遍历

1.4.1 通过for循环遍历

  • 遍历 就是 从头到尾 依次 从 列表 中取出 每一个元素
  • Python中专门提供 for循环 实现遍历
# 遍历,从头开始找,直到结束
name_list = ['mike', 'yoyo', 'rock', 'lily']

# 通过while实现遍历
# 1. 定义条件变量i = 0
i = 0

# 2. while i < 列表元素个数:
while i < len(name_list):
    # 3. 取出某个元素,打印
    name = name_list[i]
    print(name)

    # 4. 条件变量的修改
    i += 1

print('==========华丽分割线=============')

# for遍历循环,和上面的while效果等价
# 从头到尾 依次从 列表 中取出 每一个元素
for name in name_list:
    print(name)

1.4.2 if…in 和 for…in 的区别

  • if…in:判断某个元素是否在列表中,如果在,if的条件为True
  • for…in:从头到尾 依次从 列表 中取出 每一个元素
name_list = ['mike', 'yoyo', 'rock', 'lily']

# if…in:判断某个元素是否在列表中,如果在,if的条件为True
name = 'yoyo'

# name的内容'yoyo'是否在name_list列表中,如果在,name in name_list结果为True
if name in name_list:
    print('%s 在列表中' % name)

print('==========华丽分割线=============')

# for…in:从头到尾 依次从 列表 中取出 每一个元素,这个元素给name赋值
for name in name_list:
    print(name)

运行结果:

yoyo 在列表中
==========华丽分割线=============
mike
yoyo
rock
lily

1.4.3 for…else的使用

  • for循环里面没有遇到break语句,for执行完后,则会执行else的分支
name_list = ['mike', 'yoyo', 'rock', 'lily']

for name in name_list:
    print(name)

    # 测试有break,和没有break的else执行情况
    # if name == 'yoyo':
    #     break
else:
    print('for循环里面没有遇到break语句,for执行完后,则会执行else的分支')

运行结果:

mike
yoyo
rock
lily
for循环里面没有遇到break语句,for执行完后,则会执行else的分支

02_元组

学习目标:

  • 知道定义元组的基本格式
  • 知道元组和列表的区别

2.1 元组的定义

  • 元组用 () 定义
  • 也用于存储 一组 数据元素 之间使用 , 分隔
  • 元组的 索引(下标) 从 0 开始
# 列表:列表变量 = [元素1, 元素2, ……]
# 元组:元组变量 = (元素1, 元素2, ……)
my_tuple = ('mike', 'yoyo', 'lily')
#             0       1        2

# 取出第0个元素
print(my_tuple[0])  # 输出:'mike'
  • 元组中 只包含一个元素 时,需要 在元素后面添加逗号
# 元组只有一个元素的时候,格式: (元素,)
my_tuple1 = (250,)
# 打印my_tuple1的类型
print(type(my_tuple1))

2.2 元组常用操作

  • tuple(元组)与列表类似,不同之处在于元组的 元素不能修改
my_tuple = ('mike', 'yoyo', 'lily')
# 元组只读不能改
# TypeError: 'tuple' object does not support item assignment
# my_tuple[0] = 'rock' # err
分类 关键字 / 函数 / 方法 说明 举例
查询 元组[索引] 根据索引取值,索引不存在会报错
tuple1 = (13, 5, 8)
# 获取索引1 对应的值
print(tuple1[1])  # 5
print(tuple1[10])  # 索引不存在,程序报错
len(元组) 元组长度(元素个数)
tuple1 = (13, 5, 8)
# 获取元组中元素的个数
length = len(tuple1)
print(length)  # 3
值 in 元组 判断元组中是否包含某个值
tuple1 = (13, 5, 8)
# 判断元组中是否包含数据5
if 5 in tuple1:  # 包含数据,返回True; 不包含,返回False
    print("元组中包含该数据")  
else:  
    print("元组中不包含该数据")
# 输出:  元组中包含该数据

03_字典

学习目标:

  • 知道定义字典的基本格式
  • 知道字典的常用操作:增删改查
  • 能够通过for循环完成对字典的遍历

3.1 字典的定义

  • 字典同样可以用来 存储多个数据
    • 通常用于存储 描述一个 物体 的相关信息
  • 字典用 {} 定义
  • 字典使用 键值对 存储数据,键值对之间使用 , 分隔
    •  key 是索引, value 是数据
    •  和  之间使用 : 分隔
    •  可以取任何数据类型,但  只能使用 字符串数字或 元组
    • 键必须是唯一的

 

"""
字典定义格式:
    字典变量 = {k1:v1, k2:v2,……}

取出元素的值:
    字典变量[键值]
"""
# 字典的定义
info = {'name': 'mike', 'age': 34, 'city': 'sz'}
print(info)  # {'name': 'mike', 'age': 34, 'city': 'sz'}

# 取出元素的值:字典变量[键值]
print(info['city'])

3.2 字典常用操作

分类 关键字 / 函数 / 方法 说明 举例
增加 字典[键] = 值 键不存在,会添加键值对
dict1 = {"name": "张三"}

# 给字典添加键值对
dict1["age"] = 20
print(dict1)  # {"name": "张三", "age": 20}
删除 字典.pop(键) 删除指定键值对,返回被删除的值,如果键不存在,会报错
dict1 = {"name": "张三", "age": 20}

# 删除键值对
value = dict1.pop("age")
print(dict1) # {"name": "张三"}
print(value) # 20

# 键不存在, 会报错
dict1.pop("height")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值