# -*- coding: utf-8 -*-
# @Time : 2019/11/6 11:10
# @Author : John
# @Email : 2398344557@qq.com
# @File : 用于序列操作的常用函数.py
# @Software: PyCharm
用于序列(列表、元组、字符串)操作的常用内置函数:
# 1. len():返回序列中元素的格式
# 适用对象:元组/列表、字典、集合
x = [1, 2, 3]
print(len(x))
—— 3
# ++++++++++++++++++++++++
# 2. max():返回序列中最大的元素
# min():返回序列中最小的元素
# 使用对象:元组/列表、字典、集合
print('最大值为:', max(x))
—— 最大值为: 3
print('最小值为:', min(x))
—— 最小值为: 1
# ++++++++++++++++++++++++
# 3. sum():对迭代对象进行求和
print(sum(x))
—— 6
# print(sum(y)) # 报错
—— TypeError: unsupported operand type(s) for +: 'int' and 'str'
# ++++++++++++++++++++++++
# 4. zip():返回可迭代的zip对象
# 常常用于同时迭代两个列表
# 【例1】
heroes = ['孙尚香', '貂蝉']
skills = ['究极弩炮', '缘·心结']
for hero, skill in zip(heroes, skills):
print(hero, '------------->', skill)
—— 孙尚香 -------------> 究极弩炮
貂蝉 -------------> 缘·心结
# 【例2】
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8, 9]
zipped1 = zip(a, b)
print(zipped1)
—— <zip object at 0x0000003F85D3A288>
print(list(zipped1))
—— [(1, 4), (2, 5), (3, 6)]
print(list(zip(b, c))) # 元素个数与最短一致
—— [(4, 4), (5, 5), (6, 6)]
# ***拓展***
# ---------------------------
# zip(*):可以理解为解压,返回二维矩阵
print(list(zip(*zip(a, b))))
—— [(1, 2, 3), (4, 5, 6)]
# 拆包(知道元组型二维矩阵求列表)
a1, a2 = zip(*zip(a, b))
print(list(a1))
—— [1, 2, 3]
print(list(a2))
—— [4, 5, 6]
# ++++++++++++++++++++++++
# 5. enumerate():枚举,l列表元素,返回枚举对象,其中每个元素包括索引和元素本身的一个元组
for x in enumerate('abcdefg'):
print(x)
—— (0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
(5, 'f')
(6, 'g')
for x in enumerate(['a', 'b', 'c']):
print(x)
—— (0, 'a')
(1, 'b')
(2, 'c')