Python日记5--列表

本文详细介绍了Python中列表的基本操作,包括元素的获取、添加、替换、删除、查找、统计等,并解释了列表的遍历方法及浅复制与深复制的区别。



1.列表

 与Java中的*集合*性质相同,用于储存一组数据.

格式: 列表名=[元素1,元素2,元素3,元素4,...];

A:列表元素获取

 方式一: 列表名[索引]

   方式二(切片):列表名[索引1:索引2] PS:此方式包左不包右,用冒号分开

  方式二举例:name=["Harry","Smith","Lily","OnionKnight"]

   print(name[1:3]) #取Smith和Lily

    print(name[-1])和print(name[3])两者都是取OnionKnight

    PS:负数的索引为倒数的顺序的索引,因此-1代表倒数第一个元素

   print(name(-2:))#此方式取Lily和OnionKnight

    print(name[0:3])#将取到从第一个元素到下标为2的元素

   print(name[:3])#与上面的效果相同

   PS:首尾的下标可以省略

B:列表元素的添加

 方式一:用append(要添加的元素)方法

 ex:name.append("Alex")

 方式二:用insert(索引)方法

   ex:name.insert(2)#原索引上的元素将后移

C:列表元素替换

  name[2]="Tom"

D:列表元素的删除

  方式一:用remove(要删除的元素)方法

  ex:name.remove("Tom")

  方式二:用del关键字

  ex:del name[0]#删除第一个元素

  方式三:用pob(要删除的索引)方法

  ex:name.pop()#默认删除最后一个元素

 ex:name.pop(0)#删除下标为0的元素

E:列表元素查找

方式一: 用index(要查找的元素)的方法

 ex:index("Lily"),返回元素的下标,但若元素不存在,则报错.

F:列表元素统计

 用count(要统计的元素个数)

ex:name.count("Lily")#返回列表中元素值为Lily的元素个数

 name.count()#返回列表中的元素个数

G:其他方法

 name.clear():清空列表

name.reverse():反转列表元素

name.sort():将列表元素排序,字符串将按照ASCII码顺序排序

name.extend():类似与Java中集合的addAll方法

 ex: arr=[1,2,3,1,4]

 name.extend(arr)#将arr添加到name列表中

2.列表的遍历

 for i in name:

 print(i)#这个i代表列表的每一个元素,类似Java的foreach循环

3.列表的遍历

 for i in name[0:-1:2]:#从列表开始复制到列表结束,步长为2,即遍历列表下标为奇数的元素

  print(i)

4.列表的元素的浅复制和深复制

 因为Python的变量不强制要求数据类型,因此列表的元素的类型可以不一致

ex: arr=[2,"Dava",65];

 name=[1,3,2,1,"Harry",arr,3,6.3]

 A.浅复制

 列表本身提供了一个copy()方法,此方法为浅复制,只复制第一层的元素

 ex:name2=name.copy();

 此时name2开辟了新的内存空间,其中name中的基本数据类型及字符串均是直接复制值给name2.

但引用类型则是传递了地址值,例如arr,本身是列表,是引用类型,此时更改name里的arr的元素,name2里的

 arr的元素将一同改变.

PS:与Java类似,基本类型及字符串,传递的是值,原变量修改后,不会影响到新变量.

 引用类型,传递的是地址值,修改原对象,将直接对内存上的内容修改,因此新对象上的内容也将改变

 B.深复制

 需要使用copy模块

  import copy

ex: arr=[2,"Dava",65];

 name=[1,3,2,1,"Harry",arr,3,6.3]

#copy模块提供了两个方法copy()和deepcopy()

copy()与列表本身的copy()方法一致

deepcopy()则是深度复制,

 name2=copy.deepcopy(name)#此方法复制出来的name2与原name已无任何关系,对name的修改,将不会

影响name2

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值