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(x )-
在列表末尾添加一个项目;相当于
a[len(a):] = [x]
list.extend(L)-
通过添加给定列表中的所有项目来扩展列表;相当于
a[len(a):] = L
list.insert(i,x )-
在给定位置插入一个项目。第一个参数是要在其之前插入的元素的索引,因此a.insert(0, x)是插入到列表的开头,而
a.insert(len(a), x)等价于a.append(x)
list.remove(x )-
从列表中删除值为x的第一项。如果没有这个的项目,那就是错误的。
list.pop([ i ] )-
删除列表中给定位置的项目,然后将其返回。如果未指定索引,则
a.pop()删除并返回列表中的最后一项。
list.index(x )-
返回值为x的第一项列表中的索引。如果没有这样的项目,那就是错误的。
list.count(x )-
返回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]"
人的一生像是一把算盘,似乎无时不在计算着什么,却是被别人拨弄的一生
浙公网安备 33010602011771号