python列表

Python基础数据类型之列表

一、什么是列表

      列表是Python最基本的数据类型之一,类似于C语言的数组,将一些数据打包存放在一个容器中,但是Python的数组要强大的多,它几乎可以存放所有类型的数据。它就类似于一个工厂的仓库,里面按顺序存放着各式各样的数据类型。

二、如何创建一个列表

方法1:用一对中括号将一堆数据包裹起来,各个数据之间用逗号隔开就形成了一个列表

>>> a=[1,'A','吴依杰','Hello python']
>>> a
[1, 'A', '吴依杰', 'Hello python']

方法2:用工厂函数list(iterable)将一个可迭代的对象生成一个列表,当传入的参数不是可迭代对象时,就会引发异常

>>> b=list('Hello')
>>> b
['H', 'e', 'l', 'l', 'o']
>>> c=list(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>

方法3:用列表生成式生成列表

>>> d = [x*2 for x in range(10)]
>>> d
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
>>>

三、列表的方法

1.向列表末尾追加一个元素(append)

>>> list1 = [1,2,3,4]
>>> list1.append(5)
>>> list1
[1, 2, 3, 4, 5]
>>>

2.向列表末尾添加多个元素,接收的参数为一个列表,其实相当于用一个列表去扩展另一个列表(extend)

>>> list1 = [1,2,3,4]
>>> list1.extend([5,6])
>>> list1
[1, 2, 3, 4, 5, 6]
>>>

3.根据索引位置向列表中插入元素,Python的索引值是从0开始算的(insert)

>>> list1 = [1,2,3,4]
>>> list1.insert(0,0)
>>> list1
[0, 1, 2, 3, 4]
>>>

4.根据元素名删除一个列表中一个已知的元素(remove)

>>> list1 = [1,2,3,4]
>>> list1.remove(2)
>>> list1
[1, 3, 4]
>>>

5.以弹出式移除列表中的元素,当不指定要弹出元素的索引值时,默认弹出最后一项,当索引值给定时,弹出索引值对应的元素(pop)

>>> list1 = [1,2,3,4]
>>> list1.pop()
4
>>> list1
[1, 2, 3]
>>> list1.pop(1)
2
>>> list1
[1, 3]
>>>

6.删除列表元素还有一个del语句,它不是list的类方法,而是一条Python语句(del)

>>> list1 = [1,2,3,4]
>>> del list1[1]
>>> list1
[1, 3, 4]
>>> del list1
>>> list1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'list1' is not defined
>>>

7.根据给定的列表中的元素返回其在列表中的索引值(index)

>>> list1 = ['A','B','C','D']
>>> list1.index('A')
0
>>> list1.index('C')
2
>>>

8.根据给定的元素返回其在列表中的个数(count)

>>> list1 = [1,1,2,3,3,3]
>>> list1.count(1)
2
>>> list1.count(2)
1
>>> list1.count(3)
3
>>> list1.count('A')
0
>>>

9.浅拷贝一个列表(copy)

>>> list1 = [1,2,3]
>>> list2 = list1.copy()
>>> list2
[1, 2, 3]
>>>

10.反转列表(reverse)

>>> list1 = [1,2,3,4]
>>> list1.reverse()
>>> list1
[4, 3, 2, 1]
>>>

11.当列表元素全部为int型时,返回一个正排序后的列表,当sort方法的关键字参数reverse=True时,返回一个反排序后的列表(sort)

>>> list1 = [1,2,3,4]
>>> list1.reverse()
>>> list1
[4, 3, 2, 1]
>>> list1 = [1,8,4,3]
>>> list1.sort()
>>> list1
[1, 3, 4, 8]
>>> list1 = [1,8,4,3]
>>> list1.sort(reverse=True)
>>> list1
[8, 4, 3, 1]
>>>

四、列表的其他操作

1.列表的切片

列表的切片操作是经常要使用的操作,所谓列表切片即根据列表的索引值的对应关系对列表进行截取操作,一般分为下面几种做法

格式:list1[n:m:step]

n:起始索引位置(当n省略不写时,表示从列表开头开始索引)

m:结束索引位置(当m省略不写时,表示索引值从n开始直到结束)

step:步长(即间隔几个数据取值,step不写时默认值为1)

>>> list1 = [1,2,3,4]
>>> list1[:]        #m,n都不写,拷贝整个列表
[1, 2, 3, 4]
>>> list1[1:3]    #结果为索引值为1到3对应的元素,不包括最后一个
[2, 3]
>>> list1[1:]      #省略m的情况,返回从n到最后的所有值
[2, 3, 4]
>>> list1[:3]      #省略n的情况,返回开始到m的所有值,不包括m
[1, 2, 3]
>>> list1[1:4:2] #n,m都有值,步长为2的情况
[2, 4]
>>> list1[:4:2]   #省略n,步长为2的情况
[1, 3]
>>> list1[1::2]   #省略m,步长为2的情况
[2, 4]
>>> list1[::2]     #省略n和m,步长为2的情况
[1, 3]
>>>
View Code

2.列表的运算操作

列表相加

列表相加即返回两个列表拼接的结果

>>> list1 = [1,2]
>>> list2 = [3,4]
>>> list3 = list1+list2
>>> list3
[1, 2, 3, 4]
>>>

列表相乘

列表相乘即返回N个列表拼接后的结果

>>> list1 = [1,2]
>>> list2 = list1*5
>>> list2
[1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
>>>

列表比较大小

列表比较大小的规则是:依次比较相同索引位置的元素的值(当为字符串时,比较其ASCII码大小),当有某一次比较出结果时,即返回一个Bool类型的值

>>> list1 = [1,2]
>>> list2 = [3,4]
>>> list2>list1
True
>>>
原文地址:https://www.cnblogs.com/Keys819/p/9281397.html