Python学习笔记

八、列表

2017-08-13  本文已影响19人  焰火青春

1、列表

数组:元素数据类型必须一致
列表:不要求数据类型一致,可以是整型、浮点型,也可以是字符串等

1.1、创建列表

(1)、普通列表

>>>number = [1,2,3,4,5]

(2)、混合列表

>>> mix = [1,'python',[1,2,3]]

(3)、空列表

>>> empty = []

1.2、向列表添加元素

(1)、向末尾添加元素

单个元素 list.append()
多个元素 list.extend([])
>>> list = [1,2,3]
>>> list.append(4)
>>> list
[1, 2, 3, 4]
>>> list.extend([5,6])   #extend()方法是使用一个列表拓展另一个列表,所以其参数是列表
>>> list
[1, 2, 3, 4, 5, 6]

(2)、任意位置添加元素

list.insert(a, b)    #参数a:要插入的列表的位置,参数b:要插入的元素

>>> list = [1,2,3,4]
>>> list.insert(1, 'python')    #1为索引号
>>> list
[1, 'python', 2, 3, 4]

1.3、从列表中获取元素

(1)、获取单个元素
通过索引值获取单个元素,索引号从0开始

>>> color = ['blue', 'white', 'red']
>>> color[1]
'white'

>>> color[0], color[2] = color[2], color[0]
>>> color
['red', 'white', 'blue']    #元素对换位置

(2)、列表分片(获取多个元素)

list[a:b]    #参数a、b为索引值,a为开始位置,b是结束位置,不包括结束位置
>>> color = ['blue', 'white', 'red']
>>> color[0:2]   
['blue', 'white']

>>> color[:2]      #获取索引值2以前的元素,不包括2的元素
['blue', 'white']

>>> color[1:]       #获取索引值为1以后的元素,包括1的元素
['white', 'red']

>>> color[:]          #对原列表进行拷贝
['blue', 'white', 'red']

>>> list = [1,2,3,4,5,6,7,8,9]
>>> list[0:9:2]    # 列表分片第三个参数表示步进,默认为1
[1, 3, 5, 7, 9]

>>> list[::2]
[1, 3, 5, 7, 9]

>>> list[::-1]        # 第三个参数为复数则表示原列表原地翻转
[9, 8, 7, 6, 5, 4, 3, 2, 1]

>>> list[::-2]
[9, 7, 5, 3, 1]

1.4、从列表删除元素

(1)、remove()方法
不需要知道元素所在列表的位置,参数为将要删除的元素

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

(2)、del[]语句
参数:所删除元素的索引值

>>> num1 = [1,2,3]
>>> del num1[1]
>>> num1
[1, 3]

>>> del num1                #删除整个列表

(3)pop()方法
默认弹出列表最后一个元素,其参数也可以接收索引值,进行弹出对应元素

>>> list = [1,2,3,4,5,6]
>>> list.pop()         # 默认弹出最后一个,并返回
6
>>> list
[1, 2, 3, 4, 5]
>>> list.pop(3)     # 指定索引值
4

1.5、列表的常用操作符

>>> list1 = [123]
>>> list2 = [456]
>>> list3 = ['abc']
>>> list4 = ['bcd']
>>> list5 = [123,456]
>>> list6 = [234,123]
>>> list7 = list1 + list2     #连接操作符
>>> list7
[123, 456]
>>> list8 = list3 + list4
>>> list8
['abc', 'bcd']
>>> list1 < list2             #比较操作符
True
>>> list3 > list4
False
>>> list5 > list6         #包含多个元素的列表比较时,默认从第一个元素开始比较,若真则整个列表赢了,字符串比较是第一个字符的ASCII码值对比
False
>>> (list1 < list2) and (list1 == list3)     #逻辑操作符
False
>>> list1 = [123]    
>>> list1*2                     #重复操作符
[123, 123]
>>> list = [1,2,3,[4,5]]
>>> 1 in list              #成员操作符in、not in
True
>>> 6 not in list
True
>>> 4 in list         #列表中的列表元素不能直接访问
False
>>> 4 in list[3]     #列表中的列表元素访问可以添加索引号
True

>>> list = [1,2,3,[4,5]]   
>>> list[3][0]   #获取列表的列表元素,第一个参数为第一个列表索引值,第二个参数为第二个列表索引值
4

1.6、列表的其他方法

查看所有列表:dir(list)
(1)、count()方法
计算其参数在列表中出现的次数

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

(2)、index()方法
返回其参数在列表中的位置

>>> list1.index(1)   #列表中两个相同元素,返回的为第一个的位置
0
>>> list1.index(3)
3

>>> list1.index(1, start,stop)  #设定索引范围,可以查找第二个目标位置
1

(3)、reverse()方法
将整个列表原地翻转

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

(4)、sort()方法
用指定的方式对列表元素排序,默认为从小到大排序
从大到小排序时,可以使用sort排序后再使用reverse()方法翻转
另外可以使用sort()方法的第三个参数sort(func, key, reverse)
默认sort(reverse = False),表示不颠倒顺序。

>>> list2 = [2,1,4,6,3,9,8]
>>> list2.sort()
>>> list2
[1, 2, 3, 4, 6, 8, 9]

>>> list2.sort(reverse = True)   #True时表示颠倒顺序
>>> list2
[9, 8, 6, 4, 3, 2, 1]

(5)、copy()方法
与切片一样,不与原列表变化
(6)、clear()方法
清空整个列表,变成空列表

1.7、关于列表分片的补充

列表分片与拷贝不与原列表变化而变化,新赋值的列表相反

>>> list1 = [1,3,4,2,7,9]
>>> list2 = list1[:]
>>> list2
[1, 3, 4, 2, 7, 9]
>>> list3 = list1
>>> list3
[1, 3, 4, 2, 7, 9]
>>> list1.sort()      # 对原列表从小到大排序
>>> list1
[1, 2, 3, 4, 7, 9]
>>> list2
[1, 3, 4, 2, 7, 9]       #切片的列表不变化
>>> list3                 #赋值的列表变化
[1, 2, 3, 4, 7, 9]
上一篇下一篇

猜你喜欢

热点阅读