1.序列
1.序列的基本概念
- 序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字-它的位置,或索引,第- -个索引是0 ,第二个索引是1 ,依此类推。Python中, 常见序列有列表、元组、字符串。序列可以进行的操作, 有索引,切片,加,乘,检查成员此外, Python已经内置确定序列的长度以及确定最大和最小的。元素的方法
2.序列的分类
- 可变序列:序列中的元素可以改变:eg:列表
- 不可变序列:序列中的元素不可以改变:eg:字符串和元组
2.列表(list)
1. 列表是python的一个对象
- 列表的作用:
1.列表可以保存多个有效的数据
2.列表是用来储存对象的对象
2.列表的使用
- 列表通过[]来创建
- list=[1,None,True]
3.切片
- 切片是指从现有列表中获得字列表
- 通过切片来获取指定列表
- 语法:[起始:结束:步长]
- 通过切片获取元素的时候会包括其实位置的元素,不会包括结束的元素,即:左闭右开区间
- list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’, ‘铁扇公主’]
1.print(list1[3:5])
2.print(list1[-2:-4:-1])
list1[3:4]=‘你好’ 字符串会被拆分
3.print(list1)
4.list1[0:0]=‘唐僧‘
就是在第一个位置插入被拆分的字符串’唐’‘僧’
5.list1[0:0]=['唐僧’]
以下是插入列表则第一个元素就是唐僧
- 当我们设置了步长取到多少个,你替换的数据就有多少个
list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’, ‘铁扇公主’]
list1[::2]=[‘唐僧’,‘唐僧’,‘唐僧’]
4.通用操作
1. +和 *
- 注:俩个列表不能相乘
1.a = [1, 2, 3] + [4, 5, 6]
print(a)
2.a = [1, 2, 3] * 3
print(a)
2. in和not in(字符串也能这样操作)
- 判断元素是否在列表中
- b = [1, 2, 3, 1]
print(1 in b)
3.len()max()min()
- len()获取列表元素个数
- max()获取列表元素最大值
- min()获取列表元素最小值
- b = [1, 2, 3, 1]
print(max(b))
print(min(b))
print(len(b))
4.index查找 而列表中没有(find)
-
格式:list.index(x[start,[,end]])
1.第一个参数获取指定元素在列表中的位置
2.第二个参数查找起始位置
3.第三个参数查找结束位置 -
index返回的结果就是当前元素的索引
5.count统计指定元素在列表中的个数
- 格式:list.count(x)
- b = [1, 2, 3, 1]
print(b.count(1))
3.列表中的修改方法
- 方法是和面向对象相关的
- 使用方式:对象.方法名(‘参数’)
1.添加方法
- append 向列表中最后一个位置插入元素
- list1.append(‘沙僧’)
- insert 向列表任意一个位置插入元素需要指定位置
- list1.insert(4,'沙僧‘)
- extend 向列表中最后一个位置插入元素,使用新的序列来扩展当前序列
- list1.extend(['沙僧’,‘孙文’]
2.删除方法
- pop()
- 根据索引删除并返回元素,如果不传递索引,默认删除最后一个
- eg:list1.pop()
- remove()
- 删除指定元素
- eg:list.remove(‘沙僧’)
- del:根据索引位置来删除
3.列表排序
- list.reverse()
- 列表倒序
- list.sort()默认是正序
- list.sort(reverse=True)倒序排列
4.for循环以及range函数
-
for 循环的语法格式如下:
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块 -
1.for循环保存累加结果的变量
-
print(“计算 1+2+…+100 的结果为:”)
a = 0
#逐个获取从 1 到 100 这些值,并做累加操作
for i in range(101):
a += i
print(a)
运行结果为:
计算 1+2+…+100 的结果为:
5050 -
2.for循环遍历元组和列表
-
my_list = [1,2,3,4,5]
for a in my_list:
print(‘a =’,a)
运行结果:
a=1
a=2
a=3
a=4
a=5
3.for循环遍历字典
my_list = {‘颜色’:‘red’,‘大小’:‘big’}
for x in my_list:
print(x)
for x in my_list.items():
print(x)
-
range语法:range(开始位置,结束位置,步长)开始位置可以省略,默认步长为1
作业1.现在有 a = [1,2,3,4,5,6] 不通过函数的形式实现列表的反转([6,5,4,3,2,1]) 并写出推导过程
- a=[1,2,3,4,5,6]#方法1
a.sort(reverse=True)
print(a)
a=[1,2,3,4,5,6]#方法2
a.reverse()
print(a)
a=[1,2,3,4,5,6]#方法3
print(a[::-1])
作业2.给用户9次机会猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对
- import random
print(‘游戏即将开始召唤师!’)
i=1
x=10
a=[1,2,3,4,5,6,7,8,9]
while i<10:
i+=1
x-=1
print(‘你还有{}次机会来进行游戏’.format(x))
player=int(input(‘请输入一个1-10中的数字:’))
computer=random.choice(a)#在序列a中随机选择一个数
if player==computer :
a.remove(computer)#删除列表中的一个相同的元素
b = random.choice(a)
print(b)
a.append(computer)
else :
print(computer)
print(‘哦,你可是今天最倒霉的召唤师了
竟然一次都没有正确,下次再来哦!!’)
作业3.有两个列表 lst1 = [11, 22, 33],lst2 = [22, 33, 44],获取内容相同的元素
- lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
for a in lst1:
if a in lst2:
print(a,end=’\n’)
作业4.现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中
import random
teacher=[‘teacher1’,‘teacher2’,‘teacher3’,‘teacher4’,‘teacher5’,‘teacher6’,‘teacher7’,‘teacher8’]
offic_1=[]
offic_2=[]
offic_3=[]
x=0
while x<8:
a = random.randint(1, 3)
if a1:
offic_1.append(teacher[x])
print(‘offic_1’,offic_1)
elif a2:
offic_2.append(teacher[x])
print(‘offic_2’,offic_2)
else:
offic_3.append(teacher[x])
print(‘offic_3’,offic_3)
x+=1
print(‘办公室1坐的老师是:’,offic_1)
print(‘办公室2坐的老师是:’, offic_2)
print(‘办公室3坐的老师是:’,offic_3)