python学习之List和Tuple
前言
在编程的过程中,有一类数据结构我们将它们称为容器,其被用来保存一系列的数据元素。在C++中,我们为了保存不同类型的对象,我们需要为他们基类。但是在python中,这些都可以免了,python是动态语言,其自动识别。
List
list是python内置的一种数据类型,称之为列表,是一种有序的集合,可以向其中添加和删除其中的元素。
比如,我们有一个整数list
int_list = [1, 3, 4, 5]
print int_list
构建一个list很简单,直接使用[]
将需要放到其中的元素括起来就可以了,这样就构建了一个list对象,然后你可以将其赋值给一个变量,然后我们通过这个变量就可以引用这个list。
list是有序的集合,我们可以通过类似于C中数据的方式来取出对应的元素。
int_list = [1, 3, 4, 5]
print int_list[0], int_list[1], int_list[-1]
与C语言不同的是,我们可以使用负数,那么就是从list尾开始。
python是动态语言,那么在list中的类型不受必须是同一类型的约束。
L = ['zhouxiang ', 1314, ' love ', ' chenchen']
print L
list可以是空的。
empty_l = []
list有一个方法append()
,其可以在list尾追加一个元素。
L = ['zhouxiang ', 1314, ' love ', ' chenchen']
L.append('forever')
print L
如果我们想将其放入list中的特定的位置,那么就使用insert()
方法,其接受两个参数,第一个为插入位置的索引号,第二个为元素。比如
i = [1, 2, 3,4]
i.insert(0, 0)
print i
其插入在1的位置,那么其后都向后退一个位置,新的list为 [0, 1, 2, 3, 4]
list中的元素现在有些不需要了,那可以使用pop()
方法。其无参数调用时,总是删除最后一个元素,如果希望指定删除,那么就将索引号传给它,逆序也是可以的。
NOTE
在pop的时候,这样
i = [1, 2, 3, 4]
i.pop(0)
i.pop(1)
print i
你其实想删除1和2,但是错了,i.pop(0)
执行完后,list已经变化了,那么你在i.pop(1)
,删除的只能是3。
更新指定位置的元素,直接使用索引号取出,然后赋值即可。
i = [1, 2, 3, 4]
i[0] = -1
print i
Tuple
tuple是另一种有序的列表,中文翻译为* 元组 *。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
list构建使用[]
,而tuple使用()
。
tt = ('zhouxiang', 'chenchen')
print tt
tuple相当于C++中的const std::list,不能删,不能加,只能读。其访问和list一样,使用下标索引访问,当然也支持逆序。
空tuple构建类似与list
t = ()
创建一个元素的tuple时不能想这样
t = (1)
print t
这样只是整数1,这是python解析器,没有把其作为一个tuple而是一个运算符来解析。为了消除歧义,Python 规定,单元素tuple要多加一个逗号“,”,这样就避免了歧义:
t = (1,)
print t