python基础之列表(list)

本文主要讨论python中列表的性质和列表的一些内置方法。

一.列表的定义和性质

1.列表的定义:

列表是python中的内置内的一种,在python中的类的关键字是list.列表的定义如下:

li=[12.'hello',344,[12,23,'hshs']]

列表是由[]标志的。列表中的元素用“,”分隔开.列表的元素可以是数字,字符串,元组,字典。

2.列表的性质

(1)列表可以通过索引查找元素
li=[1,2,3,4]
s=li[3]
print[s]

列表的索引从0开始,最后一个元素的索引是列表的长度-1.

(2)列表可以通过for和while循环遍历
1 li=[1,2,45,45]
2 s=len(li)
3 i=0
4 for item in li:
5     print(item)
6 while i<s:
7     print(li[i])
8     i=i+1

列表是有序的,因此可以由while循环遍历(字典是无序的,因此不能用while循环遍历)。当然,for循环遍历也是支持的。

(3)列表中的元素可以是基本数据,即数据,字符串,列表,字典,元组。
(4)列表可以进行切片操作
1 li=[12,34,56,67,89]
2 li1=li[2:4]
3 print(li1)

列表可以通过切片取出列表中的元素,切片的索引范围是左闭右开。除了可以查询之外,也可以通过列表切片修改列表元素

(5)列表的元素允许修改
1 li=[23,45,67,90]
2 li[2]=100
3 print(li)
4 li[0:3]=[11,21,23]
5 print(li)

列表的元素可以修改,既可以通过索引修改,也可以通过切片修改

(6)列表中的元素允许删除

列表中的元素,可以通过del li[i]删除,也可以通过listl类提供的方法删除。方法会在后面讨论,此处只说del的删除方式。

1 li=[45,67,90,'defde',True,'huebfur']
2 del li[0]
3 print(li)
4 del li[0:3]
5 print(li)

del既可以针对索引删除,也可以针对切片删除。

(7)列表与字符串之间的转换

列表与字符串可以相互转换。字符串转列表相对比较简单,可以直接转换:

s='hello'
s1=list(s)
print(s1)

将字符串转为列表,则字符串中的每一个字符变成列表中的一个元素。

列表转字符串就不能直接转了,因为如果直接转会将列表的"[]"标志符也作为字符串的一部分。列表转字符串,我们只能自己写一个函数来转化:

1 li=[123,'sre',567,True,'defe']
2 s=''
3 for iltm in li:
4     s=s+str(iltm)
5 print(s)

如果列表中的元素只有字符串,则可以通过join函数来将列表转为字符串:

1 li=['hello','dhuewu','cbureuvr']
2 s=''.join(li)
3 print(s)
(8)补充:字符串一旦创建后,不可再修改

字符串在python中是一个常量(在其他语言中也是这样),所以一旦字符串被创建,就不可再修改,如果要修改字符串,相当于是对该字符串做了一份复制,因此修改后的字符串需要另外一个变量来接收,修改操作对原字符串是无效的,而列表的修改操作则是针对原列表操作,因此无需另外一个变量来接收。

1 s='helloworld' #原字符串
2 s1=s.upper()#将字符串变为大写
3 print(s1)
4 print(s)

代码执行效果:

下面是在列表末尾新增一个元素:

1 li=[1,2,3,4,5,6]
2 li1=li.append(9)
3 print(li)
4 print(li1)

这是他的执行结果:

由上可以看出,对列表的所有操作都是直接针对原始列表进行的。新的变量接收的值是根据方法的返回值来定的。

3.列表类的方法

(1)append(value):

append函数在列表的末尾添加一个元素

(2)clear():

清空列表

(3)copy():

复制列表(浅拷贝)

(4)count(value):

计算value在列表中出现的次数。

(5)extend(iterable):

该函数传入参数一个可迭代对象(可以用for循环的便是一个可迭代对象),然后把可迭代对象里面的元素加入列表末尾。需要注意该方法与append方法的区别,如果append函数传入一个可迭代对象,那么会把这个可迭代对象作为一个整体元素加入列表,而extend是把可迭代对象的每一个元素分别加入列表:

1 li=[1,2,3]
2 li1=li.copy()
3 li.append('hello')
4 li1.extend('hello')
5 print(li)
6 print(li1)

下面是执行结果:

(6)index(value,strat=None,end=None):

该方法判断列表中查找元素第一次出现的索引(从左往右),该方法有两个缺省参数,可以指定查找的范围。若列表中不存在该值,会报错

 (7)insert(index,value):

在列表指定的位置插入新的值

(8)pop(index=None):

删除列表中的元素。默认是删除列表的最后一个元素。该方法有一个缺省参数可以用来指定删除的位置。

(9)remove(value):

删除列表中第一次出现的value值(从左向右)。

(10)reverse():

将列表翻转。即第一个元素变为倒数第一个元素,第二个元素变为倒数第二个元素...

(11)sort(key=None,reverse=False):

将列表元素排序,默认是按照升序,如果是降序,则将reverse设置为true,key值后续部门再讨论,此处略过。

原文地址:https://www.cnblogs.com/jiachuantang/p/8359552.html