自己的一些私事处理完了,继续学习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.键是唯一值:想象一下,如果电话簿里面有两个张三,我就不知道哪个电话是我想要的,所以键必须唯一。