13_Python数据类型字符串加强_Python编程之路

2018-06-18 02:35:02来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

前面已经跟大家讲了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

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:无法找到python第三方库的处理方法

下一篇:python2.7入门---面向对象