对于python而言,集合中的数据类型可以不一致,如下:
# 列表中同时含有int和string类型的元素 list1 = [1,2,'hello','world'] # 元组中同时含有int和string类型的元素 tup = ('jason', 22)
列表是动态的:长度大小不固定,可以随意增加、删减或者改变元素(mutable)
元组是静态的:长度大小固定,无法增加删减或者改变(immutable)
即列表是可变的,元组是不可变的
举个栗子
l = [1, 2, 3, 4] # 和很多语言类似,python中索引同样从0开始,l[3]表示访问列表的第四个元素 l[3] = 40 print(l) # 打印结果如下 [1, 2, 3, 40] tup = (1, 2, 3, 4) tup[3] = 40 # 控制台报错信息 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment
python中的列表和索引都支持负数,-1表示最后一个元素,-2表示倒数第二个元素...
同样的栗子
l = [1, 2, 3, 4] print(l[-1]) # 打印结果如下 4 tup = (1,2,3,4) print(tup[-1]) # 打印结果如下 4
l = [1, 2, 3, 4] l[1:3] # 返回列表中索引从1到2的子列表 [2, 3] tup = (1, 2, 3, 4) tup[1:3] # 返回元组中索引从1到2的子元组 (2, 3)