列表和元组
列表:(利用栈这种数据结构存储)
1. 凡是整数、浮点数、字符串、对象都可以一同装入列表中【】,且用逗号隔开。
如,创建混合列表:mix=[1,'a',3.14,[1,2]]
空列表:zero=[]
2. 列表的索引:
1) 列表也可以像字符串一样用【】索引
如,x=[1,2,3]
x[1]则为2
负索引表示从最后开始往前数,-1代表列表的最后一个元素,如,x[-1]为3
2) 字符串以及序列面量,可直接对其操作索引,如,‘hello’[3]为l, input('year=')[2]为对输入的字符串的第3个位置操作
注:input('year=')是显示year= 再人为输入值
3. 列表的创造
可使用【::】三个参数:一个为起始数,第二个为终止数,第三个为步长
如,number=【1,4,1】
则number为1,2,3,4
也可以用函数list创造列表
如,list(‘hello’)则为【‘h’,'e','l','l','o'】
4. 对列表的操作
1) 获取列表中的元素组成新的列表
方法1:如,number【0,10,1】
number[::4]为从前到后每隔3个取出一个元素,得到【1,5,9】
方法2:如,number【1:3】为【0,1,2】
number【:3】为
2)序列相加、乘法:
+可以将两个相同类型的拼接,对列表也是如此,一般而言不可以拼接不同类型的。
n * 作用于列表是将列表中的元素重复n遍。
3)列表的长度、最大值、最小值
如,number【1,2,3】
长度:len(number)最大值:max(number)最小值:min(number)
4)对列表删除
case1:删除已知列表中元素的名称时用remove(1)//1表一个参数,且删除一个元素
如,member=【'a','b','c'】
member.remove('b') ------则member为【'a','c'】
case2: 删除已知位置在列表中的元素时用的del //del 时语句不用加()
如,del member[2]
方法3: 用pop()删除元素并返回该元素
pop()表取出列表最后一个元素,并返回取出的值
如,member.pop()-------输出‘c’,此时member为【'a','b'】
pop(2)表取出列表第二的位置,并输出该元素
如,member.pop(2)------同上
5)向列表添加元素
case1: 用append(1) //与remove对立,为加一个元素
如,lis[1,2,3]
lis.append(4)-------此时lis为【1,2,3,4】
case2: 向列表添加(扩展)个列表用extend(1)//1表示一个列表
如,a=[1,2,3]
b=[4,5,6]
a.extend(b)------a为[1,2,3,4,5,6]
case3: 按指定位置插入元素用 insert(2,) // 第一个参数表示在列表当中的位置,第二个参数表示要加入的元素。
6)拷贝与赋变量
如, list6=【1,2,3】
list7=list6【:】//拷贝一个list6给list7
list8=list6 // 贴上另一个标签
当list6改变时,list8也改变,因指向同一个列表,而list7不改变单独指向副本
7)查找制定值在列表中的位置 用index(3: :) // 第一个参数为索引值,第二和第三为索引范围
如, mem.index('a',1,5) // 指的是在第一到第五的位置查找‘a’的位置
8)将列表元素变换位置
case1:反转顺序 用reverse()
如,x=[1,2,3]
x.reverse()---------则此时x为【3,2,1】
case2:用制定的方式对列表排序 用sort() //无参数即默认情况下为从小到大排,若为三个参数sort(func,key,reverse),reverse默认为false
元组----不可修改元素本身的列表
1. 与列表的区别:
1)元素不可修改;2)创建时为()(且一定有逗号),而不是【】;3)逗号是区分数值还是元组,如,temp(0,)为元组
2. 对元组的更新
可用+拼接
如,temp=('a','b' 'c')
temp=temp[0:1]+('d',)+temp[2:]-----------则temp为('a','d','b','c')
也可用+删除元素,但不可改变元素
*重复操作也可用于元组
如,8*(8,)------------(8,8,8,8,8,8,8,8)
关系运算符与逻辑运算符与in与not in 都可用于元组