Python中的列表

列表就是Python中的数组,但是列表长度可变,且能包含不同类型元素。

例如:

1 xs = [3, 1, 2]   # 创建列表
2 print xs, xs[2]  # 输出结果: "[3, 1, 2] 2"
3 print xs[-1]     # 负索引从列表的末尾开始计数; 所以输出 "2"
4 xs[2] = 'foo'    #列表可以包含不同类型的元素
5 print xs         # 输出 "[3, 1, 'foo']"
6 xs.append('bar') # 向列表中添加一个新元素
7 print xs         # Prints 
8 x = xs.pop()     # 删除列表中的一个元素
9 print x, xs      # 输出"bar [3, 1, 'foo']"

一、列表中的方法

list.append

在列表末尾添加一个项目;相当于a[len(a):] [x]

list.extend(L

通过添加给定列表中的所有项目来扩展列表;相当于 a[len(a):] L

list.inserti

在给定位置插入一个项目。第一个参数是要在其之前插入的元素的索引,因此a.insert(0, x)是插入到列表的开头,而a.insert(len(a), x)等价于a.append(x)

list.remove

从列表中删除值为x的第一项。如果没有这个的项目,那就是错误的。

list.pop

删除列表中给定位置的项目,然后将其返回。如果未指定索引,则a.pop()删除并返回列表中的最后一项。

list.index

返回值为x的第一项列表中的索引。如果没有这样的项目,那就是错误的。

list.count

返回x出现在列表中的次数。

list.sort 

对列表中的项目进行由大到小排序。

list.reverse

反转列表中的元素。

二、切片Slicing

为了一次性地获取列表中的元素,Python提供了一种简洁的语法,这就是切片。

例如:

1 nums = range(5)    #range是一个内置函数,可创建整数列表。
2 print nums         # 输出: "[0, 1, 2, 3, 4]"
3 print nums[2:4]    # 从索引2到4(不包括)取得切片; 打印“ [2,3]“
4 print nums[2:]     # 从索引2到末尾获取一个切片; 打印“ [2,3,4]”
5 print nums[:2]     # 从头开始获取索引2的切片(不包括); 打印“ [0,1]
6 print nums[:]      # 获取整个列表的一部分; 打印[“ 0,1,2,3,4]”
7 print nums[:-1]    # 切片索引可以为负; 打印[“ 0,1,2,3]”,索引-1为列表的末尾
8 nums[2:4] = [8, 9] # 将新的子列表分配给切片
9 print nums         #输出: "[0, 1, 8, 8, 4]"

三、循环Loops

可以这样遍历列表中的每一个元素:

1 animals = ['cat', 'dog', 'monkey']
2 for animal in animals:
3     print animal
4 # Prints "cat", "dog", "monkey", each on its own line.

如果想要在循环体内访问每个元素的指针,可以使用内置的enumerate函数:

1 animals = ['cat', 'dog', 'monkey']
2 for idx, animal in enumerate(animals):
3     print '#%d: %s' % (idx + 1, animal)
4 # Prints "#1: cat", "#2: dog", "#3: monkey", each on its own lin

列表推导List comprehensions:在编程的时候,我们常常想要将一种数据类型转换为另一种。下面是一个简单例子,将列表中的每个元素变成它的平方。

1 nums = [0, 1, 2, 3, 4]
2 squares = []
3 for x in nums:
4     squares.append(x ** 2)
5 print squares   # Prints [0, 1, 4, 9, 16]

使用列表推导,你就可以让代码简化很多:

1 nums = [0, 1, 2, 3, 4]
2 squares = [x ** 2 for x in nums]
3 print squares   # Prints [0, 1, 4, 9, 16]

列表推导还可以包含条件:

1 nums = [0, 1, 2, 3, 4]
2 even_squares = [x ** 2 for x in nums if x % 2 == 0]
3 print even_squares  # Prints "[0, 4, 16]"
posted on 2021-03-10 13:47  满船清梦压星河1024  阅读(340)  评论(0)    收藏  举报