Python学习记录 - 容器操作
示例练习 - 1
# 写一个函数,来求n的阶乘(n正整数)
# 规定必须传入大于等于1的正整数
def factor_recursion(n: int) -> int:
if n == 1:
return n
return n * factor_recursion(n-1)
def factor_iteration(n: int) -> int:
result = 1
for i in range(1, n+1):
result *= i
return result
num = 5
print(factor_recursion(num))
print(factor_iteration(num))
示例练习 - 2
# 创建列表
# 1.直接使用字面值来创建
# []就表示一个空的列表
a = []
print(type(a))
# ---------------------------------------------------
# 2.使用list()来创建列表
b = list()
print(type(b))
# ---------------------------------------------------
# 3.可以在创建列表的时候,在[]中指定列表的初始值,元素之间使用','来分割
a = [1, 2, 3, 4]
print(a)
# ---------------------------------------------------
# 4.可以在不同的列表里放不同类型的变量
a = [1, 'hello', True, [4, 5, 6]]
print(a)
# ---------------------------------------------------
# 5.使用下标来访问元素
a = [1, 2, 3, 4]
print(a[2])
# ---------------------------------------------------
# 6.使用下标来修改列表元素
a = [1, 2, 3, 4]
a[2] = 100
print(a[2])
# ---------------------------------------------------
# 7. 超出下标有效范围就会出现异常 IndexError: list assignment index out of range
# a = [1, 2, 3, 4]
# a[100] = 0
# print(a[100])
# ---------------------------------------------------
# 8.可以使用内建函数 len 来获取到列表的长度(元素个数),和字符串类似
a = [1, 2, 3, 4]
print(len(a))
# ---------------------------------------------------
# 9.Python中的下标,其实还可以写成负数 例如:写成-1,其实等价于 len(a)-1
a = [1, 2, 3, 4]
print(a[len(a)-1])
print(a[-1])
示例练习 - 3
"""
列表切片操作的基本使用
"""
# 1.切片操作基本使用
a = [1, 2, 3, 4]
print(a[1:3])
# -----------------------------------------------------------
# 2.使用切片的时候省略边界,省略边界后其实就是从列表的0号元素开始取,一直渠道结束的后边界,此处切片的下标也可以写成负数,还可以把开始边界和结束边界省略掉表示整个列表
a = [1, 2, 3, 4]
print(a[1:])
print(a[-1:])
print(a[:])
# -----------------------------------------------------------
# 3.带有步长的切片操作
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(a[::1]) # 得到整个列表
print(a[::2]) # 以步长为2切割列表
print(a[::3]) # 以步长为3切割列表
print(a[1:-1:2]) # 从1 - -1位置以步长为2切割列表
# -----------------------------------------------------------
# 步长的数值还可以是负数,当步长为负数的时候,意思是从后往前来取元素
print(a[::-1])
print(a[::-2])
# -----------------------------------------------------------
# 5.当切片中的范围超出有效下标之后,不会出现异常! 而是尽可能的把符合要求的元素给获取到
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
print(a[1:100])
示例练习 - 4
"""
列表的遍历操作
"""
# 1.使用for循环来遍历列表
a = [1, 2, 3, 4, 5]
for elem in a:
print(elem)
print(a)
# -----------------------------------------------------
# 2.使用for循环遍历,通过下标方式
a = [1, 2, 3, 4, 5]
for i in range(0, len(a)):
print(a[i])
a[i] += 10
print(a)
# -----------------------------------------------------
# 3.使用while循环,通过下标遍历
a = [1, 2, 3, 4, 5]
i = 0
while i < len(a):
print(a[i])
a[i] += 5
i += 1
print(a)
示例练习 - 5
"""
列表常用操作
"""
# 1.使用append 往列表末尾添加一个元素
a = [1, 2, 3, 4]
a.append(5)
a.append('hello')
print(a)
b = [6, 7, 8, 9]
b.append('world')
print(b)
a.append(b)
print(a)
# -----------------------------------------------------
# 2.还可以使用insert方法,往列表的任意位置来新增元素
a = [1, 2, 3, 4]
a.insert(1, 'hello')
a.insert(100, 'hello')
print(a)
示例练习 - 5
"""
列表常用操作
"""
# 1.使用in 来判定某个元素是否存在列表中
a = [1, 2, 3, 4]
print(1 in a)
print(10 in a)
print(1 not in a)
print(10 not in a)
# --------------------------------------------------
# 2.使用index方法来判定当前元素在列表中的位置,得到一个下标
a = [1, 2, 3, 4]
print(a.index(2))
print(a.index(3))
print(a.index(10)) # 索引超出会报异常
示例练习 - 6
"""
列表基本操作
"""
# 1.使用pop删除列表中的最末尾元素
a = [1, 2, 3, 4]
a.pop()
print(a)
# -------------------------------------------------
# 2.使用pop还能删除任意位置的元素,pop参数可以传一个下标过去
a = [1, 2, 3, 4]
a.pop(1)
print(a)
# -------------------------------------------------
# 3.使用remove方法,可以按照值来进行删除
a = ['aa', 'bb', 'cc', 'dd']
a.remove('cc')
print(a)
示例练习 - 7
"""
列表的基本操作
"""
# 1.使用 + 针对两个列表进行拼接
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
c = a + b
print(a)
print(b)
print(c)
# -------------------------------------------------
# 2.使用extend来进行拼接,这个拼接是把后一个列表的内容拼接到前一个列表里头
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
c = a.extend(b)
print(a)
print(b)
print(c)
# -------------------------------------------------
# 3.使用+=来进行拼接
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
a += b
print(a)
print(b)
示例练习 - 8
"""
元组的基本使用
"""
# 1.创建元组
a = ()
b = tuple()
print(type(a))
print(type(b))
# -------------------------------------------------
# 2.创建元组的时候,指定初始值
a = (1, 2, 3, 4)
print(a)
# -------------------------------------------------
# 3.元组中的元素也可以是任意类型的
a = (1, 2, 'hello', True, [])
print(a)
# -------------------------------------------------
# 4.通过下标来访问元组中的元素,下标也是从0开始,到len - 1结束
a = (1, 2, 3, 4)
print(a[1])
print(a[-1])
# print(a[100])
# -------------------------------------------------
# 5.通过切片来获取元组中的一部分
a = (1, 2, 3, 4)
print(a[1:3])
# -------------------------------------------------
# 6.同样可以使用for循环等方式来遍历元素
a = (1, 2, 3, 4)
for e in a:
print(e)
# -------------------------------------------------
# 7.可以使用 in 来判定元素是否存在,使用index查找元素的下标
a = (1, 2, 3, 4)
print(3 in a)
print(a.index(3))
# -------------------------------------------------
# 8.可以使用 + 来拼接两个元组
a = (1, 2, 3, 4)
b = (5, 6, 7, 8)
print(a + b)
# -------------------------------------------------
# 9.元组只支持读操作,不能支持‘修改’类操作
a = (1, 2, 3, 4)
# a[0] = 100
# print(a)
# -------------------------------------------------
# 10.当进行多元赋值的时候,其实本质上是按照元组的方式来进行工作的
def getPoint():
x = 10
y = 20
return x, y
print(type(getPoint()))
print(getPoint())
示例练习 - 9
"""
字典基本使用
"""
# 1.创建字典
a = {}
b = dict()
print(type(a))
print(type(b))
# -------------------------------------------------
# 2.创建字典的同时设置初始值
a = {
'id': 1,
'name': 'Peter'
}
print(a)
示例练习 - 10
"""
字典的基本你操作
"""
# 1.在字典中新增元素,使用 [] 来进行
a = {
'id': 1,
'name': 'Peter'
}
a['age'] = 22
print(a)
# 2.在字典中,根据key修改value,也是使用 [] 来进行的
a['age'] = 23
print(a)
# 3.使用pop方法,根据key来删除键值对
a.pop('name')
print(a)
示例练习 - 11
"""
字典中的基本操作
"""
a = {
'id': 1,
'name': 'Peter',
'score': 90
}
for key in a:
print(key, a[key])
print(a.keys())
print(a.values())
print(a.items())
for key, values in a.items():
print(key, values)