Python 列表

来源:互联网 发布:java服务器用linux 编辑:程序博客网 时间:2024/06/18 17:43

Python 系列笔记

Python 元组

Python 列表

Python 字典

Python 集合

geopy 在python中的使用

列表简介

list是一种有序的集合,可以随时添加和删除其中的元素。

列表中的数据的类型可以是相同的,也可以是不同的。

创建列表

使用中括号[],元素之间用逗号,隔开:

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

空列表用[]表示:

>>> list2 = []>>> list2[]

访问列表

1. 使用索引获取列表中的数据

list_name.[index]

超出索引时,会报错:index out of range

另外,-1表示倒数第1个,-2表示倒数第2个。即

list_name[-x]list_name[-x + n] 的值相同。

其中0 <= x <= n-1,n为列表的长度。

>>> list1 = [1,2,3,4,5]>>> list1[0]1>>> list1[2]3>>> list1[4]5>>> list1[5]Traceback (most recent call last):  File "<pyshell#336>", line 1, in <module>    list1[5]IndexError: list index out of range>>> list1[-1]5>>> list1[-2]4>>> 

2. 获取列表长度

len(list_name)

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

3. 使用加号连接列表

list1 + list2

生成一个新的列表,数据为list1和list2的数据之和。

>>> list1 = [1,2,3,4,5]>>> list2 = [4,5,6,7,8]>>> list1 + list2[1, 2, 3, 4, 5, 4, 5, 6, 7, 8]>>> 

4. 列表复制

list1 * n

返回一个新的列表,数据为list1的n份。

>>> list1 = [1,2,3,4,5]>>> list1 * 3[1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5]>>> 

5. 列表的遍历

使用for each语法:

>>> list1 = [1,2,3,4,5]>>> for i in list1:    print(i)12345>>> 

6. 判断元素是否在列表中

element in list 返回元素是否在列表中

element not in list 返回元素是否不在列表中

>>> list1 = [1,2,3,4,5]>>> 1 in list1True>>> 1 not in list1False>>> 100 in list1False>>> 100 not in list1True

7. 删除元素

del list[index] 删除index索引的元素

>>> list1 = [1,2,3,4,5]>>> del list1[3]>>> list1[1, 2, 3, 5]>>> 

8. 修改列表中的值

list[index] = newValue 将列表index索引的元素赋予新的值newValue

>>> list1 = ["python", "java"]>>> list1['python', 'java']>>> list1[0] = "C">>> list1['C', 'java']

列表的API

1. 列表末尾添加新的对象

list.append( obj )

在列表末尾添加新的对象,无返回值。

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

2. 统计某个元素在列表中出现的次数

list.count(obj) 返回某个元素在列表中出现的次数。如果没有,则返回0。

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

3. 追加一个序列

list.extend(exq) 追加一组元素到列表中,参数可以为列表。

>>> list1 = [1,2,3]>>> list1.extend([100, 200])>>> list1[1, 2, 3, 100, 200]>>> 

4. 找出某个值第一个匹配项的索引位置

list.index(obj) 从列表中找出某个值第一个匹配项的索引位置, 如果不存在则报异常ValueError。相当于Java中String的indexOf(str)方法。

>>> list1 = [10,11,12,12,13]>>> list1[10, 11, 12, 12, 13]>>> list1.index(12)2>>> list1.index(100)Traceback (most recent call last):  File "<pyshell#385>", line 1, in <module>    list1.index(100)ValueError: 100 is not in list

5. 将对象插入列表

list.insert(index, obj) 将元素obj插入到list的index索引处,原来位置及后边的元素都向后移动一位。

>>> list1 = ['python', 'java', 'C']>>> list1['python', 'java', 'C']>>> list1.insert(1, 'C++')>>> list1['python', 'C++', 'java', 'C']

6. 删除指定元素并返回

list.pop(index) 删除index索引处的元素,并返回该元素。如果不传递index值,即list.pop(),默认删除最后一个元素。

>>> list1 = ['python', 'java', 'C']>>> list1['python', 'java', 'C']>>> list1.pop(0)'python'>>> list1['java', 'C']>>> list1.pop()'C'>>> list1['java']

7. 移除列表中某个值的第一个匹配项

list.remove(obj) 移除列表中某个值的第一个匹配项

>>> list1 = ['python', 'java', 'python', 'C']>>> list1['python', 'java', 'python', 'C']>>> list1.remove('python')>>> list1['java', 'python', 'C']

8. 反转列表

list.reverse() 反转列表。

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

9. 排序

list.sort() 对列表进行排序,默认升序,如果传递参数reverse = True,则降序排序。也可以对字符串排序,默认字典序升序。

升序:

>>> list1 = [1, 5, 2, 10, 9]>>> list1[1, 5, 2, 10, 9]>>> list1.sort()>>> list1[1, 2, 5, 9, 10]

降序:

>>> list1 = [1, 5, 2, 10, 9]>>> list1[1, 5, 2, 10, 9]>>> list1.sort(reverse = True)>>> list1[10, 9, 5, 2, 1]

字符串排序:

# 默认,升序>>> list1 = ['python', 'java', 'c']>>> list1['python', 'java', 'c']>>> list1.sort()>>> list1['c', 'java', 'python']>>> # 降序>>> list1 = ['python', 'java', 'c']>>> list1['python', 'java', 'c']>>> list1.sort(reverse = True)>>> list1['python', 'java', 'c']

列表切片

列表切片指的是将列表的一部分切出来。

格式:list[start : end : step]

返回一个新的列表,其中,从list的start索引开始,到end索引截止,不包括end。步长为step。不设置步长是,默认步长为1。

>>> list1 = [0,1,2,3,4,5,6,7,8,9]>>> list1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# 默认步长为1>>> list1[1:8][1, 2, 3, 4, 5, 6, 7]>>> list1[1:8:2][1, 3, 5, 7]>>>

一些省略:

  • 如果stop省略,表示到列表最后,即从start开始到全部结束,也包括最后一个元素。
>>> list1 = [0,1,2,3,4,5,6,7,8,9]>>> list1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# 省略stop,从第三个元素到最后>>> list1[3:][3, 4, 5, 6, 7, 8, 9]# 省略stop,从第三个元素到最后,步长为2>>> list1[3::2][3, 5, 7, 9]>>>
  • start省略,则表示从0开始
>>> list1 = [0,1,2,3,4,5,6,7,8,9]>>> list1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# 省略start,从0开始,不包括5>>> list1[:5][0, 1, 2, 3, 4]# 省略start,从0开始,步长为2>>> list1[:5:2][0, 2, 4]
  • start和stop都省略,表示全部
>>> list1 = [0,1,2,3,4,5,6,7,8,9]>>> list1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# start 和 stop都省略,表示全部>>> list1[:][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# start 和 stop都省略,表示全部>>> list1[::][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# start 和 stop都省略,表示全部,步长为2>>> list1[::2][0, 2, 4, 6, 8]>>>
  • 如果start或者stop为负数,则表示倒数第n个。
>>> list1 = [0,1,2,3,4,5,6,7,8,9]>>> list1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# start为-5,stop为-2,表示从倒数第5个到倒数第2个,即从(-5+10)到(-2+10)# 即从5到8,不包含8。10表示列表的长度。>>> list1[-5:-2][5, 6, 7]# 从-5到-2,并且步长为2。>>> list1[-5:-2:2][5, 7]>>>
  • 如果step为负数,表示逆序
>>> list1 = [0,1,2,3,4,5,6,7,8,9]>>> list1[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# 逆序,从第8个元素到第2个元素,不包括第2个元素。>>> list1[8:2:-1][8, 7, 6, 5, 4, 3]# 逆序,从第8个元素到第2个元素,不包括第2个元素。步长为2。>>> list1[8:2:-2][8, 6, 4]# 逆序,全部,步长为1。>>> list1[::-1][9, 8, 7, 6, 5, 4, 3, 2, 1, 0]# 逆序,全部,步长为2。>>> list1[::-2][9, 7, 5, 3, 1]# 逆序,从最后一个元素,到第6个元素,不包括第6个元素。>>> list1[:6:-1][9, 8, 7]# 逆序,从最后一个元素,到第6个元素,不包括第6个元素。步长为2。>>> list1[:6:-2][9, 7]# 逆序,从第3个元素到前面所有的元素。>>> list1[3::-1][3, 2, 1, 0]# 逆序,从第3个元素到前面所有的元素。步长为2。>>> list1[3::-2][3, 1]

参考

Python从零开始系列连载

廖雪峰 Python教程

Python 3.5 中文API 列表