前面已经跟大家讲了python的数据类型,但是没有深入去讲,这一节我们深入了解python数据类型的使用
列表数据类型有很多方法,我们在这里一一跟大家介绍
1.append
方法append用于将一个对象附加到列表末尾。
例如以下代码
In [1]: my_list = [1, 2, 3, 4]
In [2]: my_list.append(5)
In [3]: my_list
Out[3]: [1, 2, 3, 4, 5]
注意append和其他方法一样,只修改列表,不返回值
2.clear
方法clear就地清空列表的内容
例如以下代码
In [4]: my_list = [1, 2, 3, 4]
In [5]: my_list.clear()
In [6]: my_list
Out[6]: []
通过切片也能实现这个功能
In [7]: my_list = [1, 2, 3, 4]
In [8]: my_list[:] = []
In [9]: my_list
Out[9]: []
3.copy
copy用于复制列表,但要注意,他只是将一个变量关联到这个列表
下面只是通过赋值实现简单的复制
In [10]: my_list = [1, 2, 3, 4]
In [11]: other_list = my_list
In [12]: other_list
Out[12]: [1, 2, 3, 4]
要让my_list和other_list指向不同的列表,就必须用到copy
例如以下代码
In [15]: my_list = [1, 2, 3, 4]
In [16]: other_list = my_list.copy()
In [17]: other_list
Out[17]: [1, 2, 3, 4]
In [18]: other_list[0] = 'one'
In [19]: other_list
Out[19]: ['one', 2, 3, 4]
In [20]: my_list
Out[20]: [1, 2, 3, 4]
可以看出两个列表指向的不是同一个内存地址
4.count
计算指定的元素在列表中出现了多少次
In [21]: word_list = ['to', 'be', 'or', 'not', 'to', 'be']
In [22]: word_list.count('to')
Out[22]: 2
注意,对于多维列表,情况会有点不同
In [23]: multi_list = [1, [1, 2], 1, [1, 2 ,3]]
In [24]: multi_list.count(1)
Out[24]: 2
In [25]: multi_list.count([1,2])
Out[25]: 1
5.extend
可以将多个值附加到列表末尾,也就是说可以将两个列表连接,或者是说你可使用一个列表去扩展另一个列表
In [26]: a_list = [1, 2]
In [27]: b_list = [3, 4]
In [28]: a_list.extend(b_list)
In [29]: a_list
Out[29]: [1, 2, 3, 4]
这看起来有点像下面这几行代码,将两个列表连接
In [30]: a_list = [1, 2]
In [31]: b_list = [3, 4]
In [32]: a_list + b_list
Out[32]: [1, 2, 3, 4]
但是要注意的是这里并不能直接把结果赋值
除了使用上面的extend方法外,我们还可以使用切片操作
In [39]: a_list = [1, 2]
In [40]: b_list = [3, 4]
In [41]: a_list[len(a_list):] = b_list
In [42]: a_list
Out[42]: [1, 2, 3, 4]
但不得不说可读性太差了
6.index
方法index在列表中查找指定值第一次出现的索引
例如以下代码
In [43]: my_list = [1, 2, 'susmote', 'ayesup', 'ayesup', 'susmote', 2, 1]
In [44]: my_list.index('susmote')
Out[44]: 2
在这里要强调一下,index只是查找出第一次出现的索引
7.insert
方法insert用于将一个对象插入列表
例如以下代码
In [46]: my_list = [1, 2, 3, 4, 6]
In [47]: my_list.insert(4, 5)
In [48]: my_list
Out[48]: [1, 2, 3, 4, 5, 6]
注意第一个参数是索引,第二是插入的值,插入的值在索引的前面
也可以使用切片完成以上操作
In [51]: my_list = [1, 2, 3, 4, 6]
In [52]: my_list[4:4] = [5]
In [53]: my_list
Out[53]: [1, 2, 3, 4, 5, 6]
8.pop
删除一个元素,默认为最后一个元素,最后会返回这个元素
例如以下代码
In [54]: my_list = [1, 2, 3, 4, 5]
In [55]: my_list.pop()
Out[55]: 5
In [56]: my_list
Out[56]: [1, 2, 3, 4]
In [57]: my_list.pop(0)
Out[57]: 1
In [58]: my_list
Out[58]: [2, 3, 4]
pop是唯一既修改列表又返回一个非None值的列表方法。
使用pop可实现一种常见的数据结构——栈(stack),这个在后面的文章中的我会讲到,这里不做详细说明
9.remove
删除第一个为指定值的元素
例如以下代码
In [59]: word_list = ['to', 'be', 'or', 'not', 'to', 'be']
In [60]: word_list.remove('to')
In [61]: word_list
Out[61]: ['be', 'or', 'not', 'to', 'be']
10.reverse
方法reverse按相反的顺序排列列表中的元素
In [62]: my_list = [1, 2, 3, 4, 5]
In [63]: my_list.reverse()
In [64]: my_list
Out[64]: [5, 4, 3, 2, 1]
如果要按相反的顺序迭代序列,可使用函数reversed。这个函数不返回列表,而是返回 一个迭代器(迭代器将在第9章详细介绍)。你可使用list将返回的对象转换为列表。
例如以下代码
In [65]: my_list = [1, 2, 3, 4, 5]
In [66]: list(reversed(my_list))
Out[66]: [5, 4, 3, 2, 1]
11.sort
方法sort用于对列表就地排序,但并不返回值
例如
In [68]: my_list = [ 7, 4, 3, 5, 8, 9, 1]
In [69]: my_list.sort()
In [70]: my_list
Out[70]: [1, 3, 4, 5, 7, 8, 9]
由于没有返回值,所以如果需要方便的将排序的值赋给一个变量,可以使用函数sorted
In [71]: my_list = [ 7, 4, 3, 5, 8, 9, 1]
In [72]: other_list = sorted(my_list)
In [73]: my_list
Out[73]: [7, 4, 3, 5, 8, 9, 1]
In [74]: other_list
Out[74]: [1, 3, 4, 5, 7, 8, 9]
注意,对于sort他是有两个可选参数的:key 和 reverse
key代表你排序依照的关键字
reverse指出是否要按相反的顺序对列表进行排序, True 或者 False
例如下面两段代码
key = len
In [75]: word_list = ['aardvark', 'abalone', 'acme', 'add', 'aerate']
In [76]: word_list.sort(key=len)
In [77]: word_list
Out[77]: ['add', 'acme', 'aerate', 'abalone', 'aardvark']
reverse = True
In [78]: my_list = [ 7, 4, 3, 5, 8, 9, 1]
In [79]: my_list.sort(reverse=True)
In [80]: my_list
Out[80]: [9, 8, 7, 5, 4, 3, 1]
欢迎访问我的博客网 www.susmote.com