列表(list)
- 列表(list)是包含0个或多个元素的有序序列
- 创建列表的方式:将逗号分隔的不同元素使用方括号括起来即可
listname=['name','id','card']
- 列表的索引也是从0开始的,可以通过下标索引访问列表中的元素
- 列表的赋值与引用:listname由实际数据产生,作为列表对象,赋值给listname2仅作为一个listname的引用,存储空间中实际数据只有一份,listname、listname2都是对该存储空间数据的引用,所以,当listname改变存储空间中的存储数据时,listname2也会发生改变,原因:他们都是来自同一个存储空间的数据。
listname=['card','id','name'] listname2=listname #listname2引用listname,并不是赋值 print(listname,listname2) listname[0]='admin' print(listname,listname2)
- 也可以使用列表函数:list(),将字符串、range()、元组等对象转换为列表,语法格式为:list(obj),obj为需要转换的对象,例:
list("hello world") list(range(1,10,2))
- 遍历列表可以使用while与for循环
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv'] i=0 #while循环 while i<len(str): print(str[i]) i+=1 #for循化 for y in str:print(y)
-
列表的基本操作:append()、extend()、insert();分别作用为:末尾列表添加新的元素、在列表末尾一次性追加另一个序列中的多个值、将指定对象插入到列表的指定位置。
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv'] str2=['a','b','c'] str.append('d') #在尾部添加新的元素‘d’ print(str) str.extend(str2) #在str尾部添加str2序列的元素 print(str) str.insert(1,'hh') #将'hh'插入到str列表下标索引1的位置 print(str)
- 查找元素与计数:list.index(obj):在列表中查找元素,用于返回元素首次出现的位置,如果不在则抛出异常;list.count(obj):统计指定字符出现的次数;
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv','gag','ebjv'] a=input('请输入数据:') if a in str: b=str.index(a) c=str.count(a) print('元素:{0},在str列表首次出现的位置:{1},出现了{2}次'.format(a,b,c)) else:print("查无数据")
- 删除元素:del命令、pop()方法、remove()方法
str=['sfgsgs','rjgerknbke','itergjtekrn','ebjv','gag','ebjv'] del str[0] #删除str列表索引为0的元素 print(str) str.pop(1) #删除str列表索引为2的元素,默认为删除最后一个元素 print(str) while 'ebjv' in str:str.remove('ebjv') #remove用于删除列表中第一个匹配项,用循环则可以删除所有的指定值的匹配项 print(str)
- 分片赋值
str=['1','2','3','4','5','6'] str[2:]=['10','9'] #从索引2开始更改成‘10’,‘9’ print(str) str[1:1]=['8','7','6'] #索引1开始到1结束插入‘8‘’7’‘6’ print(str) str[1:6]=[] #索引1-6插入插入空元素 print(str)
-
列表排序:reverse()、sort()、sorted();
#格式如下: list.reverse() #元素反向存放 list.sort([key=None],[reverse=False]) #key为key为可选参数,如果指定了该参数就会按照该方法进行排序,reverse也是可选参数,表示是否反向排序,默认为false(正序) sorted(iterable,[key=None],[reverse=False]) #iterable表示迭代对象(列表名),它与sort的区别于sort方法是在原列表上进行修改,而sorted方法是产生新列表,不会修改原列表
str=['1','6','3','4','5','6'] str.reverse() #将str列表中的元素反向存放 print(str) str.sort() #对元素值进行正向排序,默认为false正序 print(str) a=['aaa','aaaaa','aa','aaaasaa','a'] a.sort(key=len,reverse=True) #按照长度反向排序 print(a) b=sorted(a,key=len,reverse=False) #将a列表正序排序并赋值给b print(a) print(b)
元组(tuple)
- 元组与列表类似,不同之处在于不能修改元组的元素,元组使用圆括号包含元素,而列表是使用方括号包含元素。创建时可以省略圆括号。
- 元组的基本操作:
- 访问元组:与列表类似,可以使用下标索引来访问元组中的值
str=('1','6','3','4','5','6') #创建元组 for i in range(0,len(str)): print(str[i],end=" ") #用循化输出元组 i+=1 //print 1 6 3 4 5 6
- 合并元组:元组中的元素值是不允许修改的,但是可以对元组进行连接组合
str=('1','6','3') str2=('4','5','6') str3=str+str2 print(str3) //print: ('1', '6', '3', '4', '5', '6')
- 元组的遍历:可以使用循化来遍历数组
str=('1','6','3','4','5','6') for i in str:print(i,end=" ") //print 1 6 3 4 5 6
- 访问元组:与列表类似,可以使用下标索引来访问元组中的值
- 元组的内置函数:len()求长度、max()求最大值、min()求最小值、tuple()以一个序列为参数,并把它转换为元组,如果本身是元组则原样返回
str=('1','7','3','4','5','6') #创建元组 a=len(str) #求元组程度 b=max(str) #求元组中最大值 c=min(str) #求元组中最小值 str_1=['xfa','sfas,','sfa'] d=tuple(str_1) #将str_1转换为元组 print(a,b,c,d)
典型案例
简易计算器:编写一个简易计算器,根据要求输入的数字和四则运算符号,计算结果并输出。
operator=['+','-','*','/']
a=float(input("请输入第一个数:"))
operator_1=input("请输入运算符:")
b=float(input("请输入第二个数:"))
if operator_1 not in operator:print("您输入的运算符有误,请输入四则运算符")
else:
if operator_1=='+':re=a+b
elif operator_1=='-':re=a-b
elif operator_1=='*':re=a*b
elif operator_1=='/':re=a/b
print(a,operator_1,b,'=',re)