史上最全的Python数据结构:列表和元组用法总结

浏览: 1371

阅读本文大概需要8分钟:




Python内置了很多有用的数据结构,今天我们先来介绍2大法宝,列表元组.(马上要到中秋节了,这个元组让我想起了元祖雪月饼)

好吧有点跑题了,我总结了一下列表的十几招的基本用法,基本上你想要的这里都有了.                                                            

  1.List列表

这个是python里面用的最多最常用的数据类型,可以通过下标来访问,可以理解为java或者c里面的数组.但是功能比数组强大n倍,list可以放任意数量的python对象,可以是字符串,字符,整数,浮点等等都可以,而且创建,添加,删除也很方便.

1)创建list //list内部的对象可以是字符串,字符,数字,支持混搭

aList = ['apple', 100, 0.01, 'banana','A','B','C']

2)访问list //直接通过下标去访问


'apple'
>>>print(aList[0])

3)列表的切片 //通过切片来取列表中的一部分

>>>print(aList[4:6])
['A', 'B']

4)列表的嵌套 //列表支持嵌套,就是列表里面可以套列表,甚至套字典,元组等


bList=[100,200,['aaa','bbb','ccc']]
>>>print(bList[2][0])
aaa


5)列表的插入//内置函数append,insert


6)列表的删除//内置remove,pop函数


7)列表支持*,+

list1=[1,2,3]
list2=[100,200,300]
list3=list1+list2
print(list3)
>>>[1, 2, 3, 100, 200, 300]
list4=['a','b','c']
list5=list4*3
print(list5)
>>>['a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c']


8)列表的排序//内置了sort函数非常方便,通过传入reverse为True或者False来升序或者降序排列


9)计算列表的长度 //利用内置函数len()

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

10)计算列表里面的最大值,最小值

aList=[1,2,3,4,5]
print(min(aList))
>>>1
print(max(aList))
>>>5

当然你若要想知道,最大的前2个数,或者最小的2个数,需要用heapq模块,以后在python黑魔法里面会详细讲.

11)列表的扩展 //用内置extend函数,看起来和+差不多,其实区别在于+是返回一个新的列表,而extend是直接修改了列表

aList=[1,2,3]
b=[4,5,6]
aList.extend(b)
print(aList)
>>>[1, 2, 3, 4, 5, 6]

12)查找列表中某一个元素的索引//内置函数index

aList=['This','is','a','very','good','idea']
print(alist.index('very'))
>>>3

13)统计某个元组在列表里面的次数,内置函数count

aList=['to','do','or','not','to','do']
print(aList.count('to'))
>>>2

以上就是常见的list的用法,注意list是支持重复元素的,就是list里面可以有2个同样的元素

比如:

cList=[100,200,'apple','peach','apple']
print(cList)
>>>[100, 200, 'apple', 'peach', 'apple']

后面的教程会讲如何一行代码去掉重复的元素

   2.元组

元组和列表一样,也是一种序列,唯一的不同在于不能修改

1)元祖的创建

aTuple=(1,2,3)
print(aTuple)
>>>(1, 2, 3)

有一点要注意,当元组里面只有一个元素的时候,一定要加, 比如(100,)

2)元组的用法和列表一模一样

很多初学者会问,既然用法和列表一样,为啥还要发明元组,原因在于

  • 有一些特殊的场合需要不可变序列,比如后面会讲道的数据结构字典,必须要用不可变序列作为键值,而列表不行。

  • 有一些内建的函数的返回值,也必须是元组.

好看完上面的内容,是不是觉得python好神奇,比起c++,java方便太多了,列表这一个数据结构就内置了这么多的函数,太爽了.

最后说一下,我坚持原创,若我写的对大家有帮助,麻烦大家转发或者关注一下 [菜鸟学python],也是对我的一点鼓励和动力。



推荐 2
本文由 菜鸟学Python 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册