python序列数据有哪些,python返回所有子序列
Yyds干货库存
Python中的数据序列(II) 1。工作回顾1。找到幸运数字6。幸运数字6(只要是6的倍数):输入任意数字,比如数字8,生成元素值为1~8的nums列表。从中选择幸运数字,并将其移动到新的幸运列表中。打印nums和Lucky。
#步骤1:定义两个空列表nums=[]lucky=[]#步骤2:提示用户输入数字num=int(input(请输入您要输入的数字:)#步骤3:生成一个nums列表(num加1)并将所有数据追加到nums列表中I在范围(1,1)内:nums.append (i) #步骤4:遍历nums,获取nums中I的幸运数字:如果i% 6==0: #幸运数字删除nums.remove(i) #将幸运数字写入lucky追加(I) #第五步:打印nums和luckyprint(nums)打印(lucky)2、随机分配8个讲师到3个教室[[],[],[]],8个讲师[a , b , c , d , e , f , g , h],随机分配8个讲师到3个教室。
分析:
思考:我们的第一课堂,第二课堂,第三课堂,你们是怎么表达的?
Rooms=[[],[],[]]#第一间rooms[0]#第二间rooms[1]#第三间rooms[2]思考二:如何从八个老师中一次读出一个人?
答:使用while或for遍历。
3.思考:我们如何在阅读讲师的每个周期中随机将他们写入一个教室?
Rooms[0或1或2]=阅读讲师信息的综合代码:
导入随机# 1,定义3个教室8个讲师室=[[],[],[]]教师=[a , b , c , d , e , f , g ,H]# 2。遍历教师中教师的所有讲师:# 3。生成一个随机数index=random.randint(0,2) Rooms [index]。追加(老师)# 3。输出每个教室的讲师信息# print(rooms)I=1 for room in rooms:print(f 第{i}个教室的讲师:{room}) i=13。知识点补充串:split()方法
函数:根据指定的字符分割一个字符串,它返回一个列表。
fruit= apple-banana-orange print(fruit . split(-))String:join()方法
函数:与split()方法相反,它的主要功能是将序列拼接成字符串。
字符串。连接(数据序列)案例:将水果列表[苹果,香蕉,橙子]拼接成苹果-香蕉-橙子
1=[苹果,香蕉,橘子]打印(-)。join (list1)) II。元组的定义和使用1。为什么需要元组思维:如果要存储多个数据,但是这些数据不能修改,怎么办?
答:列表?列表可以一次存储多个数据,但列表中的数据可以更改。
Num _ list=[10,20,30] num _ list [0]=100在这种情况下,我们要存储多个数据,并且数据不能更改。我们做什么呢
回答:使用==tuple,tuple可以存储多个数据且tuple中的数据不可修改。==
2.元组的定义元组的特征:定义元组使用==括号==,使用==逗号==分隔数据。==数据可以是不同的数据类型。==
基本语法:
#多数据元组tuple1=(10,20,30)#单数据元组tuple2=(10,)注意:如果定义的元组中只有一个数据,在这个数据后面要加一个逗号,否则这个数据类型就是这个数据的唯一数据类型。
3.元组的相关操作方法。因为元组中的数据不能直接修改,所以大部分操作方法都是查询方法。
数字函数1元组[index]根据==index下标==find element 2index()查找一些数据。如果数据中有相应的下标,否则将报告错误。语法与list和string的索引方法相同。3count()统计某个数据在当前元组中出现的次数。4len()计算元组中数据的数量。情况1:访问元组中的元素。
Nums=(10,20,30)print(nums[2])情况二:找到元素在元组中出现的位置,如果存在则返回索引下标,如果不存在则直接报错。
Nums=(10,20,30) print (nums.index (20))情况三:统计一个元素在元组中出现的次数。
Nums=(10,20,30,50,30) print (nums.count (30))情况四:4:len()方法主要是求数据序列、字符串、列表、元组的长度。
Nums=(10,20,30,50,30) print (len (nums)) III。字典——Python 1中的查询工件。为什么需要字典思考1:比如我们要存储一个人的信息,姓名:Tom,年龄:20岁,性别:男,如何快速存储。
Person=[Tom , 20 , male]思维二:在日常生活中,姓名、年龄、性别是一个人的基本特征。但如果用链表来存储,就会分散成三个元素,这显然是不合逻辑的。有没有办法可以保存在同一个元素里?姓名、年龄和性别是这个元素的三个属性。
答:使用Python中的字典。
2.dictionary dict Python的概念特征:
符号为==花括号==(花括号)={}
数据为==key-value pair==形式为={key:value},key:键名,value: value。在同一个字典中,键必须是唯一的(类似于索引下标)
每个键值对由==逗号==分隔
定义:
#有一个数据字典dict1={ 姓名:汤姆,年龄:20,性别:男性 } #空字典dict2={}dict3=dict()3。字典添加的基本语法:
字典名[key]=value注意:如果键存在,修改这个键对应的值;如果键不存在,添加这个键-值对。案例:定义一个空字典,然后添加姓名、年龄、地址等三个关键字。
# 1、定义一个空字典person={}# 2、给字典添加数据person [姓名]=刘备 person[年龄]=40person [地址]=钟书 # 3、使用print方法打印person字典print(person)注意:列表和字典都是可变类型。
4.delete dictionarydel dictionary name[key]:删除指定元素。
# 1、用数据person={ 姓名:王大锤,年龄:28,性别:男,地址:北京市海淀区 }# 2、删除字典中的一个元素(如性别)del person[性别]# 3
# 1、用数据person={name :王大锤,年龄:28,性别:男,地址:北京市海淀区 }# 2、用clear()方法清除字典person.clear()# 3、打印字典print(person)5
字典名[key]=value注意:如果键存在,修改这个键对应的值;如果键不存在,添加这个键-值对。案例:定义一个字典,里面有姓名,年龄,地址,修改关键地址的值。
# 1、定义字典person={name :孙悟空,年龄:600,地址:花果山 }# 2、修改字典中的数据(地址)person[地址]=东土大唐 # 3、打印字典print(person)6、字典的
序列[关键字]字典的相关查询方法
编号函数1get(key,default value)根据字典键获取相应的值,如果当前搜索的键不存在,则返回第二个参数(default value),如果省略第二个参数,则返回None2keys()返回列表中字典的所有键,3values()返回列表中字典的所有值,4items()返回列表中可遍历的(key,values)元组数组例1:
# 1、定义一个字典cat={name: Tom , age: 5, address: new york }# 2、获取字典的相关信息name=cat . get( name )age=cat . get( age )gender=cat . get( Male )# get(key,默认值)address=cat . get( address )print(f name:{ name },age: {age},gender: {gender},address: {address )情况2:提取个人字典中的所有键
# 1、定义一个字典person={ name : Diu Sim的故事, age: 18, mobile: 1376502249} # 2、提取字典print(person.keys())中的姓名、年龄和移动属性例3:提取person字典中的所有value值。
# 1,定义一个字典person={ name : Diu Sim的故事, age: 18, mobile: 1376502249} # 2,提取字典中Diu Sim的故事的数字,18和13765022249 print(person.values())。案例4:使用
# 1,定义一个字典person={ name : Diu Sim的故事, age: 18, mobile: 1376502249} # 2,调用items方法获取数据,dict_items([(name , Diu Sim的故事),( age ,)1376502249 )]# print(person . items())# 3。用for循环遍历字典中的数据for key,value in person . items():print(f“{ key }:{ value }”)7 .综合案例:通讯录管理系统需求:打开一个通讯录管理。
知识点:列表、字典、无限循环
扩展:在Python中,我们可以用字典来保存一个人的基本信息。但是如果要保存很多人的信息,就必须把列表和字典结合起来。
Students=[0,1,2]student={name :刘备,年龄:18,移动: 10086 } Assembly:students=[{name :刘备,年龄:18,移动:年龄:17,移动: 10000},{ name :张飞,年龄:16,移动: 10010}]为什么需要无限循环:
当我们选择一个菜单时,一旦功能完成,整个程序就完成了。为了让程序一直运行,可以模拟无限循环的效果,让程序一直运行。
虽然正确:要求:一般情况下,通讯录管理系统应该有四个功能:==添加,删除==更改,查看。
# 1,定义一个列表,Students=[]# 2为了存储以后所有学生的通讯信息,打印功能菜单打印(- * 40)打印(欢迎使用传智教育通讯录管理系统V1.0 )打印([1]添加学生信息)打印([2]删除学生信息)打印([3]退出系统)打印40)同时为真:# 3。提示用户执行相关操作。user_num=int(input(请输入要执行的操作号:))如果user_num==1: # 4。提示用户输入学生的信息。student={} student[姓名]=input(请输入学生姓名:)student[年龄]=int(input(请输入学生年龄:))student[手机]=input(请输入学生电话:)# 5。将学生信息保存在列表students . append(student)Print(students)elifuser _ num==2:name=input(请输入要删除的学生的信息:)# 6 .遍历学生中I的所有学生信息:if I [name]==name: #从列表中删除整个学生(字典):students.remove(i) print(成功删除)print(学生)else: print(您要删除的学生信息不存在)elif user_num==3: print(感谢您使用传智教育通讯录管理系统V1.0版)Break else: print(输入错误,请重新输入要操作的数字)IV集合3354求交、并、差集合1、什么是集合集合(set)是不重复元素的无序序列。
天生减肥。
紊乱
2.集合的定义。在Python中,我们可以用一对花括号{}或者set()方法来定义一个集合,但是如果你定义的集合是一个空集,那就只能用set()方法了。
#定义一个集合S1={10,20,30,40,50} print (S1) print (type (S1)) #定义一个集合:集合中存在相同的数据s2={ 刘备,曹操,孙权,曹操 }print(s2)print(type(s1))#定义一个空集S3={ } S4=set()print(type(S3))# class dict print(type(S4))# class set 3 .集合操作的相关方法(增加、删除、检查)集合的增加操作
Students=set()students.add(李哲)students.add(刘一)print(students) update()方法:向集合中添加串行数据(字符串、列表、元组、字典)。
Students=set()list1=[刘备,关羽,赵云]Students . update(list 1)print(students)students=set()students . add(刘德华)students。add (dawn) #使用update添加一个新元素,students。更新( KUN ),删除集合 remove()方法:删除集合中指定的数据,如果数据不
discard()方法:删除集合中指定的数据,数据不存在不报错。
pop()方法:随机删除集合中的一些数据,返回这些数据。
# 1,定义一组products={ 萝卜,白菜,桃子,奥利奥,番茄,菠萝 }# 2,使用remove方法删除元素products.remove(白菜)print(products)# 3,使用discard方法删除未知元素products.discard(玉米)print(products)# 4,使用pop方法随机删除del _ product=products . pop()print(del _ product)集合中的一个元素。 in:判断一个元素是否在集合中,如果是,返回True,否则返回False。
不在:判断一个元素不在集合中,如果不在,返回True,否则返回False。
#定义一个集合s1={ 刘帅,英标,高远 } #确定刘帅是否在s1集合中如果刘帅在s1: print(刘帅在s1集合中)否则:print(刘帅不在s1集合中)集合的遍历操作
对于集合中的I:打印(i)4、集合中的交、并、差特征。在Python中,我们可以使用来寻找两个集合的交集:
在Python中,我们可以使用来寻找两个集合的并集:
在Python中,我们可以使用-来寻找两个集合的差集:
#求集合的交、并、差s1={ 刘备,关羽,张飞,丢辛的故事 }s2={ 袁绍,吕布,曹操,丢辛的故事 } #求两个集合的交打印(s1 s2)#求两个集合的并打印(
2.通用公共方法1操作符支持的容器类型描述合并元素中的字符串、列表、元组*复制字符串、列表、元组。不在元素中的字符串、列表、元组、字典是否存在?案例1:合并
# 1,加号代表两个序列之间的联系和整合。str 1= hello str 2= world print(str 1 str 2)# 2,定义两个列表并集成它们的数据。list1=[刘备,关羽]list2=[诸葛亮,赵云]print(list1 list2)# 3。定义两个元组并整合它们的数据。Tuple1=(10,20) Tuple2=(30,40) print (Tuple1Tuple2)案例2: *复制
# 1、字符串与乘号的关系print(- * 40)print(传智教育Python管理系统V1.0)print(- * 40)# 2、列表与乘号的关系list 1=[ *]print(list 1 * 10)# 3、元组与乘号的关系tuple1=
ips=[192.168.10.11 , 10.1.1.100 ,172 . 15 . 184 . 31 ]if 10 . 1 . 1 . 100 in IPS:print(列表中的元素已经存在)else: print(列表中的元素不存在)3 .常用公共方法2编号函数说明1len()根据索引计算容器2del或del()下标中的元素个数。返回4分钟内容器中元素的最大值()和5范围内容器中元素的最小值(开始、结束、步进)。从开始到结束(不含)的数字在step中生成,使用6enumerate()函数将一个可遍历的数据对象(如列表、元组或字符串)组合成一个索引序列,同时列出数据和数据下标。它通常用在for循环中。1: len()获取字符串、列表、元组、字典和集合的长度。
#定义一个字符串str 1= hello world print(f(f 字符串长度为{len(str1)})#定义一个列表list1=[10,20,30,40,50]print(f 列表长度为{len(list1)})#定义一个字典dict1={name :哆啦a梦, gender:male , address : Tokyo } print(f 字典长度为{len (dict1)。
#定义一个list1=[吕布,董卓,丢西姆的故事] #删除董卓Dellist1 [1] print (list1)使用del方法#定义一个字典dict1={name :白,年龄:23,地址:东海龙宫 }。
1=int (input(请输入第一个数字:))num2=int(input(请输入第二个数字:))num3=int(input(请输入第三个数字:))list1=[num1,num2,3]num _ num=max(list 1)min _ num=min(list 1)print(f maximum:{ max _ num } )print(f minimum:{ min _ num } )情况4: enumerate(),它将一系列数据构造成一个键:值结构,并且
1=[10,20,30,40,50] n=1 for I in list1: print(第f { n }个数字:{i}) n=1 print (-* 40) for key,value in enumerate (list1): print(第f个)
# 1,定义元组类型序列tuple1=(10,20,30) print (list (tuple1)) # 2,定义一个集合类型序列set1={a , b , c , d} print (list (set1)) # 3,定义年龄:18,地址:钟书 }print(list(dict1))tuple()方法:将一个序列类型的数据转换成元组,
#定义一个列表类型数据list1=[a , b , c , d] print (tuple (list1)) #定义一个集合类型数据set1={10,20,30,40} print (tuple (set1)) set()方法。
#定义一个列表类型数据list1=[a , b , c , d , a] print (set (list1)) #定义一个元组类型数据tuple1=(10,20,30,40)print(set(tuple 1))Derivation是一个可以从一个数据序列构造另一个新的数据序列(一个正则列表或者控制一个正则列表)的结构。派生有三种:列表派生、集合派生和字典派生。
[1,2,3]推导公式[1,4,9]
2.为什么需要演绎案例:创建一个0-9的列表。
While循环:
#初始化计数器I=0 list 1=[]# I=9时写入循环条件:list1.append(i) #更新计数器i=1print(list1)for循环:
1=[] #为范围(0,10)中的I编写循环:list1。Append (i) print (list1)思考:能不能把上面的代码简化成一行代码来修复这个程序?
答:可以,用推导。
3.列表演绎的基本语法:
变量名=[列表中变量的表达式列表中变量的表达式]变量名=[列表中变量的表达式if条件]情况:定义一个0到9之间的列表。
1=[]对于范围(10)中的I:list 1。附加(I)打印(列表1)列表推导
1=[I for I in range(10)]print(list 1)principle:[I for I in range(10)]
推导首先运行表达式右边的内容:第一次遍历:i=0时,得到变量I的结果,这个结果会放入最左边的变量I中,此时是列表中的[0]。第二次遍历:i=1时,得到变量I的结果,这个结果会追加到最左边的变量I,此时在列表中是[0,1].将添加最左边的变量I。此时是列表中的[0,1,2,3,4,5,6,7,8,9]4。在使用列表派生时,我们可以使用for循环。事实上,我们还可以在遍历过程中引入if条件判断。
variable=【if条件判断时序列中临时变量的表达式】等价于for序列中临时变量:if条件判断情况:生成0到9之间的偶数(i%2==0)序列。
1=[I for I in range(10)if I % 2==0]print(list 1)5、for循环嵌套列表派生for range中的临时变量(n):for range中的临时变量(n):基本语法:
变量=[序列中临时变量的表达式序列中临时变量的表达式]案例:创建一个列表=[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
(1,0) (1, 0-2)
(1,1) (1, 0-2)
(1,2) (1, 0-2)
(2,0) (2, 0-2)
(2,1) (2, 0-2)
(2,2) (2, 0-2)
本机代码:用于循环嵌套
1=[] #范围(1,3)中I的外循环:#范围(0,3)中j的内循环:tuple1=(I,j) list1。追加(tuple1)打印(list1)列表派生:
1=[(i,j) for i in range (1,3) for j in range (0,3)] print (list1) 6。字典衍生思维:有以下两个列表,如何快速合并成一个字典?
1=[姓名,年龄,性别] list2=[汤姆,20,男性] person={ 姓名:汤姆,年龄:20,性别:男性 }答:用字典推导。
基本语法:
(1)字典推导是列表推导思想的延续,语法相似,但只产生一个字典。
字典推导格式:
变量={key:value for key,value in sequence}字典派生函数:==快速将列表合并到字典中或者从字典中提取目标数据。==
1:创建字典:字典键是1到5的数字,值是这个数字的二次方。
字典1={1:1,2:4,3:9,4:16,5:25}
Dict1={I: I * * 2 for I in range (1,6)} Print (Dict1)情况2:将两个列表合并成一个字典
1=[姓名,年龄,性别] list2=[汤姆,20,男性] # Result: person={ 姓名:汤姆,年龄:20,性别:男性 } person=
Counties={MBP: 268,惠普:125,戴尔:201,联想:199,宏基:99} # Demand:提取上述数量大于等于200的计算机的字典数据counts={key:value for key,Value in counts . items()if Value=200 } print(counts)7 .集合派生与列表派生非常相似,唯一的区别是使用了{}而不是[]。
思考:为什么需要集合推导,但是列表推导不香?
答:收藏最大的特点就是去重。
要求:用下面列表的2次方的数据创建一个集合。
1=[1,1,2]集1={1,4}导数
1=[1,1,2]set 1={ I * * 2 for I in list 1 } print(set 1)转载请联系作者授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。