今天与各位分享python的另外两种数据类型:列表(Lists)和元组(Tuples)。
列表是一组对象的有序集合。
区别:
C语言数组的成员类型相同,而Python列表的成员类型可以不同(注1)。
C语言数组的大小是固定的,而Python列表的大小可扩大、可缩小。
注1:从语法上准确的讲,Python的列表里保存的是指向各个成员数据对象指针的数组,并不是链表的形式。因此,根据索引从列表里取一个成员的速度与C语言的数组一样快。
例如:
这个列表有四个成员,分别是整数、字符串、小数、子列表。列表L里面保存的是指向这四个数据的指针(地址),并不是四个数据本身。
用中括号[]把一组数据括起来,并且这些数据之间用逗号隔开。例如:
用len()
计算列表的长度,例如:
列表作为一种序列,与字符串一样,支持序列的基本操作,如+(拼接)、*(重复)、index索引、slice切片。例如:
列表支持原位修改。与字符串是只读的不一样,列表是可变的。例如:
列表作为对象本身的操作方法有append、extend、insert、remove、pop、sort、reverse、count、index、clear。例如:
注:列表没有push函数,不要想当然哦。不信?你可以用print(dir(L1))查查列表有哪些内置函数。
下面介绍一个特别的数据类型——元组(Tuple)。元组可以理解成只读的列表。不能进行上面几乎所有操作,除了index和count。只读属性有点像字符串。正因为定义后不能修改,元组是定长的。
元组的定义用圆括号()而不是方括号[]。例如:
如这些例子,元组可用于防止误修改的情况,比如作为函数的输入参数,并不希望被函数内部误修改到。
例如:我们需要读取tc目录下的test case列表,并转化成元组。
运行结果如下:
下次我们将介绍python的另一个重要的数据类型“字典”。在TCL语言里也有字典,在C和Perl里叫哈希,在SystemVerilog里叫关联数组,我们会介绍他们有哪些异同点。