[关闭]
@XiangZhou 2015-06-07T10:48:27.000000Z 字数 1360 阅读 2227

python学习之List和Tuple

python 数据类型


前言

在编程的过程中,有一类数据结构我们将它们称为容器,其被用来保存一系列的数据元素。在C++中,我们为了保存不同类型的对象,我们需要为他们基类。但是在python中,这些都可以免了,python是动态语言,其自动识别。

List

list是python内置的一种数据类型,称之为列表,是一种有序的集合,可以向其中添加和删除其中的元素。
比如,我们有一个整数list

  1. int_list = [1, 3, 4, 5]
  2. print int_list

构建一个list很简单,直接使用[]将需要放到其中的元素括起来就可以了,这样就构建了一个list对象,然后你可以将其赋值给一个变量,然后我们通过这个变量就可以引用这个list。
list是有序的集合,我们可以通过类似于C中数据的方式来取出对应的元素。

  1. int_list = [1, 3, 4, 5]
  2. print int_list[0], int_list[1], int_list[-1]

与C语言不同的是,我们可以使用负数,那么就是从list尾开始。

python是动态语言,那么在list中的类型不受必须是同一类型的约束。

  1. L = ['zhouxiang ', 1314, ' love ', ' chenchen']
  2. print L

list可以是空的。

  1. empty_l = []

list有一个方法append(),其可以在list尾追加一个元素。

  1. L = ['zhouxiang ', 1314, ' love ', ' chenchen']
  2. L.append('forever')
  3. print L

如果我们想将其放入list中的特定的位置,那么就使用insert()方法,其接受两个参数,第一个为插入位置的索引号,第二个为元素。比如

  1. i = [1, 2, 3,4]
  2. i.insert(0, 0)
  3. print i

其插入在1的位置,那么其后都向后退一个位置,新的list为
[0, 1, 2, 3, 4]

list中的元素现在有些不需要了,那可以使用pop()方法。其无参数调用时,总是删除最后一个元素,如果希望指定删除,那么就将索引号传给它,逆序也是可以的。
NOTE
在pop的时候,这样

  1. i = [1, 2, 3, 4]
  2. i.pop(0)
  3. i.pop(1)
  4. print i

你其实想删除1和2,但是错了,i.pop(0)执行完后,list已经变化了,那么你在i.pop(1),删除的只能是3。

更新指定位置的元素,直接使用索引号取出,然后赋值即可。

  1. i = [1, 2, 3, 4]
  2. i[0] = -1
  3. print i

Tuple

tuple是另一种有序的列表,中文翻译为* 元组 *。tuple 和 list 非常类似,但是,tuple一旦创建完毕,就不能修改了。
list构建使用[],而tuple使用()

  1. tt = ('zhouxiang', 'chenchen')
  2. print tt

tuple相当于C++中的const std::list,不能删,不能加,只能读。其访问和list一样,使用下标索引访问,当然也支持逆序。

空tuple构建类似与list

  1. t = ()

创建一个元素的tuple时不能想这样

  1. t = (1)
  2. print t

这样只是整数1,这是python解析器,没有把其作为一个tuple而是一个运算符来解析。为了消除歧义,Python 规定,单元素tuple要多加一个逗号“,”,这样就避免了歧义:

  1. t = (1,)
  2. print t
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注