阿里天池-python训练营Task2

二、学习内容I.列表(list)1.定义列表(list)为有序集合,可以保存任意类型的对象,语法为[元素1,元素2,……,元素n]。列表的语法点在于用中括号“[]”将元素放在一起,用逗号“,”将元素隔开2.创建列表列表可以通过直接赋值创建,也可以用内置方法list(sub)把可迭代对象sub转化为列表,其中sub可以为range对象、字符串等。此外,在上次的学习中学习的列表推导式也可以用于创建列表,例如:a=[1,2,'Python',True] #直接赋值创建列表,元素为任意...
摘要由CSDN通过智能技术生成


二、学习内容

I.列表(list)

1.定义
列表(list)为有序集合,可以保存任意类型的对象,语法为[元素1,元素2,……,元素n]。列表的语法点在于用中括号“[]”将元素放在一起,用逗号“,”将元素隔开

2.创建列表
列表可以通过直接赋值创建,也可以用内置方法list(sub)把可迭代对象sub转化为列表,其中sub可以为range对象、字符串等。此外,在上次的学习中学习的列表推导式也可以用于创建列表,例如:

a=[1,2,'Python',True]   #直接赋值创建列表,元素为任意对象,列表中保存的是对象的引用
print(a,type(a))
   #运行结果:
   #[1,2,'Pthon',True] <class'list'>
 
b=list(range(1,11))    #通过list()方法将range对象转换为列表
print(b,type(b))
  #运行结果:
  #[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] <class 'list'>
 
c=[i*2 for i in b]     #通过推导式创建列表
print(c,type(c))
  #运行结果:
  #[2, 4, 6, 8, 10, 12, 14, 16, 18, 20] <class 'list'>
 
d=[]    #创建空列表,之后可以用list类的内置方法添加元素,详见下文
 
f=[[1,2,3]]*3          #列表的元素也可以是容器类型
print(f,type(f))       #*3的操作意为将创建了3份原列表的引用,看似是3个相同的列表拼在了一起
f[0][1]=5              #其实这3个相同列表的引用都是一样的,都指向原列表
print(f,type(f))       #只要一个列表产生变化,原列表就会变化,其他被拼接起来的列表也会变化
  #运行结果:
  #[[1, 2, 3], [1, 2, 3], [1, 2, 3]] <class 'list'>
  #[[1, 5, 3], [1, 5, 3], [1, 5, 3]] <class 'list'>

 3.列表的添加、删除操作
列表中有一些内置方法,可对列表进行添加或删除元素的操作。这些操作对列表的id不产生影响,这表明列表是可变的。字典和集合也是可变的,而数值、元组、字符串是不可变的。

判断一个数据可不可变可以用hash()方法判断,如果参数的数据类型是可变的,那么就会报错。

(1)添加元素

list.append(obj)在列表末尾添加新的对象,只接受一个参数,参数可以是任何数据类型,被追加的元素在 list 中保持着原结构类。append()方法一次只添加一个元素,若参数obj为一个列表,那么这个列表会作为一个整体添加到 list 中;
list.extend(seq)在列表末尾一次性追加另一个序列中的多个值,参数seq为列表,此方法用新列表seq拓展原列表list。相当于把seq接到list的末尾,是对list的操作,无返回值;
list.insert(index,obj)在编号index的位置插入元素obj。对参数obj的要求和append()一样,index表示第几个间隔,index从0数起。
例程:

x=list(range(1,6))
print(x)               #运行结果:[1,2,3,4,5]
 
x.append(6)            #在末尾添加元素6
print(x)               #运行结果:[1,2,3,4,5,6]
 
x.append([7,8])        #参数obj为列表,将列表整体当作一个元素添加到末尾
print(x)               #运行结果:[1,2,3,4,5,6,[7,8]]
 
x.extend([9,10])       #用列表[9,10]拓展x,即将[9,10]中的所有元素添加到x的末尾
print(x)               #运行结果:[1,2,3,4,5,6,[7,8],9,10]
 
x.insert(0,'Numbers')  #在第0个间隔之间(即最左端)插入字符串'Numbers'
print(x)               #运行结果:['Numbers',1,2,3,4,5,6,[7,8],9,10]

(2)删除元素

list.remove(obj)删除列表中第一个与obj相同的元素。remove()方法为对list的一项操作,无返回值;
list.pop([index=-1])返回并删除列表中index位置的元素。index为可选参数,表示列表的索引,索引相关详见下文。pop()方法默认取出列表中的最后一个元素;
del语句可以用于删除单个或多个列表对象。具体用法为 del list[var1],或del list[start:end:step]。del 语句原本就可以用于删除变量,若del 后面写的是列表则删除整个列表,若写的是列表的切片则删除列表中相对应的元素。
例程:

x=['I','Love','Python',1,2,3]
print(x,type(x))                   #运行结果:['I','Love','Python',1,2,3] class<'list'>
 
x.remove('I')                      #删除x中的'I'
print(x)                           #运行结果:['Love', 'Python', 1, 2, 3]
 
y=x.pop()                          #从x中取出最后一个元素赋给y
print('x=',x,'\ny=',y,sep="")      #运行结果:x=['Love', 'Python', 1, 2]
                                   #         y=3
 
del x[2],x[2]                      #删除x中的第3个元素,依次执行
print(x)                           #注意:del语句后的删除对象是依次执行的,先执行完一次
                                   #删除x[2]后x[3]就没有了,然后再执行一次删除x[2]
#运行结果:['Love', 'Python']

4.列表元素选取
(1)索引

可以通过list[index]的方式表示列表list中的元素,index为索引值,整数,从0开始。

若index为负数,则从右到左数起。例如list[-1]是列表list的最后一个元素,list[-2]是列表list的倒数第二个元素。

(2)切片

切片是一种一次性从列表里进行多个索引的方式,写法为list[start:end:step=1],start为选取的第一个元素,end为选取的最后一个元素,step为步长,默认为1。切片有四种用法:

list[start:]  从start位置开始,选取后面的所有元素
list[:end]  从第一个元素开始,选取到end位置的前一个元素(含头不含尾)
list[start:end]  从start位置开始,选取到end位置的前一个元素
list[start:end:step]  从start位置开始,每隔step个间隔选取一个元素,直到end位置为止(不含end位置上的元素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值