MENU

Python学习笔记(三)

2017 年 12 月 23 日 • Python学习笔记

列表,元组,字典

列表

这里的列表可以理解为C++中的vector比较合适,或者Java中的List。
列表可以通过数组下标进行访问,如

books = ['Math', 'English', 'Chinese']

#取出第二个元素
print books[2]

但是,有些时候我就很疑惑如何动态新建一个列表。我一般使用如下方法新建一个列表。

books = []
for i in range(0, 5) :
    
    #向列表中添加元素   
    books.append(i)

当然还有更简洁的,通过列表生成式创建。

books = [i for i in range(5)]

还有一些列表常用的操作

books = ['Math', 'English', 'Chinese']

#修改列表
books[1] = 'Physic'

#删除列表中的某个元素
#根据索引来删除
del books[1]

#根据元素值列删除
books.remove('English')

#列表的某个位置插入元素
books.insert(1, 'Music')

#逆向查找某个元素的索引,没有该元素则直接抛出异常,建议先判断是否有该元素再进行索引查找

if books.count('English') != 0:
    index = books.index('English')
#

元组

元组与列表类似,最大的不同时元组中元素的是不允许进行改变的(包括删除某一个元素),一般会用在入参或者一些不想让别人改变值的地方。
正因为两者很相似,所以两者可以进行相互转换。

#tuple() 将列表转换为数组
#list()  将数组转换为元组

字典

字典这个数据结构与C++和Java中的map很雷同,不知道内部是不是通过红黑数实现的。字典中的每个元素由"key"和"value"组成键值对,字典中的key不允许重复,否则后一个key对应的value将覆盖前一次的(和一些基于内存的数据库相似)。比如

dic = {'name':'ken', 'age':18}

访问元素也是很方便的

#可以通过key直接访问
dic = {'name':'ken', 'age':18}
name = dic['name']

#遍历整个dic
#通过遍历key来获取对应的值
for key in dic.keys():
    print dic[key]

#直接遍历字典中的值
for value in dic.values():
    print value

修改与删除某个元素依然保持着python的一贯作风。

dic = {'name':'ken', 'age':18}

#修改元素
dic['name'] = 'bill'

#删除元素,删除元素之前先确认是否存在该元素,否则会抛出异常
if dic.has_key('name'):
    del dic['name']

#清空整个字典
dic.clear()

当然也可以将字典转换为元组数组,可以作如下操作

dic = {'name':'ken', 'age':18}

items = dic.items()

#将返回 [('age', 18), ('name', 'ken')]

还是python大法好,数据结构操作起来很简便。

最后编辑于: 2018 年 01 月 04 日