自己的一些私事处理完了,继续学习Python吧。写来写去还是觉得Scala更优秀一点,只是没有得到重视而已,或者Scala不再依赖于java虚拟机而是像Python一样用自己的一套东西,可能会更好些。
言归正传,这次来学习一些Python的数据结构。
一、列表
我对于Python的列表理解来看更像是Java的ArrayList(数组列表),可以把数据按照顺序存储到列表,并且列表是可变的,即支持增、删、改操作。
1.创建一个列表
mylist = ['a','b','c']
2.修改列表中的元素
mylist[0] = 'A'
Python的索引是从零开始的,列表也不例外。修改mylist的列表第一个元素为“A”
3.增加一个元素到列表末端
mylist.append('ddd')
mylist += ['ddd']
在mylist列表的末端增加“ddd”的两个方法,第一个是标准方法,调用列表的“.append”增加方法,讲元素添加到列表末端。
注意:下面的写法是错误的
mylist += 'ddd'
得到的结果是A,b,c,d,d,d
而不是想要的A,b,c,ddd
4.删除列表中的元素
del mylist[2]
删除mylist列表中第三个元素(别忘了,索引从零开始)
其他有关列表的方法可以自行google,这里需要说的是len(mylist)可以得到列表的长度
二、元组(Tuple)
元组合列表很相似,你完全可以把元组理解为一个特殊的列表,其特殊性在于元组不可变。
元组用“()”定义,每个元素用“,”隔开,查找元组中的元素也是用“[]”索引也是从零开始。
1.定义一个元组
myTupleOne = ('a',) #只包含一个元素的元组
myTupleTwo = ('a','b')
如果元组中只有一个元素,那么后面必须跟一个“,”由于元组不可变,所以元组十分安全。
三、字典
数据题外话,我更喜欢用Scala的叫法“映射”。“字典”两个字首先让我联想到SQL,而“映射”则体现出一一对应的关系,也是这个集合的主题内容。
1.键值对的介绍:如果你了解SQL肯定能理解“键值 对”,否则可能不知所云。想想一些你如何从电话簿中查朋友电话?假设有个朋友叫张三,要给他打电话,通过这个操作让我们来了解键值对。
第一步,手机电话簿找到张三,那么张三就是键(张三就是贱)
第二补,找到张三后电话簿显示出他的电话号码,电话号码就是值,也就是结果
那么,一套键和值组成一个对,就是张三、电话组成一个对。他们是对应的关系,我不能通过张三找到李四的电话。
2.键是唯一值:想象一下,如果电话簿里面有两个张三,我就不知道哪个电话是我想要的,所以键必须唯一。
转载于:https://blog.51cto.com/heyijx2/1400047