声明:本文基于廖雪峰老师的Python教程。
list列表:
list中可以包括其他的list,从而构成二维数组,甚至更高维的数组
list中的数据类型可以不同,如
>>>uname = ['123', 123, True]
>>>uname
['123', 123, True]
包含字符型,整形,和布尔型
list中元素也是从0开始计数,其最后一个元素可用-1表示,以此类推,倒数第二个,第三个可以用-2,
-3表示
注意list元素表示的越界问题
list越界会提示:
IndexError: list index out of range
用len()函数可以获取list的元素个数,下标最大值小于这个数
append() 将元素追加到list末尾
uname.append('name')
pop() 删除list末尾元素
uname.pop() 则删除’name ’
insert() 在指定位置插入元素
传入两个参数,一个插入的位置,另一个是插入的元素,在指定位置插入元素,原位置及此后的元素后移
替换元素可直接赋值
s[1] = 'name'
若list中含有另一个list,可用s[1][2] 的形式访问list中list的元素
或直接p[1]来访问s[1][2] 位置上的元素
空list
>>>L = []
>>>len(L)
0
TUPLE
元组
tuple可以理解为不可以改变指针数量和指向的list
表示方法为
>>>a = (1)
>>>a
1
>>>b = (1,)
>>>b
(1,)
因为()在python中也有小括号的含义,所以在表示tuple时,tuple元素末尾最好带有逗号“ , ”
来表示这是一个元组(只有一个元素时必须带逗号)
在廖的教程中说明了为何tuple中带有list,list还可以改变元素
我的理解是,list也可以理解为tuple中的一个元素,tuple中指向list元素的内存早已分配好
结合C来理解就是指向list的指针已经确定,无法修改。但可以修改list中的任意元素
想比较list,tuple没有append(),insert(),pop()等操作,所以更加安全(无法修改)
同样的,可以用len()来获取tuple中的元素个数
习题:
L = [
['Apple', 'Google', 'Microsoft'],
['Java', 'Python', 'Ruby', 'PHP'],
['Adam', 'Bart', 'Lisa']
]
# 打印Apple:
print(L[0][0])
# 打印Python:
print(L[1][1])
# 打印Lisa:
print(L[2][2])