列表,元组,字典
列表
这里的列表可以理解为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大法好,数据结构操作起来很简便。