python学习之List和Tuple

时间:2022-12-07 19:36:32

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