list
Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。
比如,列出班里所有同学的名字,就可以用一个list(有点像数组又有点像链表)表示:
>>> classmates = ['Michael', 'Bob', 'Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']
>>> classmates[0]
'Michael'
>>> classmates[1]
'Bob'
>>> classmates[2]
'Tracy'
//负数表示从后往前
>>> classmates[-1]
'Tracy' //倒数第一个
>>> classmates[-2]
'Bob' //倒数第二个
>>> classmates[-3]
'Michael' //倒数第三个
越界时Python会报一个IndexError错误
替换时,直接赋值给对应位置:
>>> classmates[1] = 'Sarah'
>>> classmates
['Michael', 'Sarah', 'Tracy']
用.append()追加元素到末尾:
>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']
用.insert( x , y )可以把y元素插入到下标为x的位置:
>>> classmates.insert(1, 'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']
.pop()将末尾元素删除:
>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']
.pop(i)将指定位置的删除,其中i是下标:
>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']
list里面的元素的数据类型也可以不同,比如:
>>> L = ['Apple', 123, True]
ist元素也可以是另一个list,比如:
>>> s = ['python', 'java', ['asp', 'php'], 'scheme']
>>> len(s)
4
注意s只有4个元素,其中s[2]又是一个list
拆开写:
>>> p = ['asp', 'php']
>>> s = ['python', 'java', p, 'scheme']
要拿到’php’可以写p[1]或者s[2][1],因此s可以看成是一个二维数组
tuple
tuple类型(和list相似但是tuple中元素一旦确定便不能更改//指向不变)
也就是说当定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来
(但是元素可以乱搞啊 -_- 反正py大法好,里面的元素可以是变量、list,还随时可以改类型)
据说用tuple类型更安全
要定义一个只有1个元素的tuple,如果这么定义:
>>> t = (1)
>>> t
1
定义的不是tuple,是1这个数,因为括号()既可以表示tuple,又可以表示数学公式中的小括号,这就产生了歧义
Python规定,这种情况下,按小括号进行计算,所以结果是1
只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:
>>> t = (1,)
>>> t
(1,)
Python在显示只有1个元素的tuple时,也会加一个逗号