注:此处的python 不能缩进,会报错,以下只是为整理格式
有序列表:list
# 列表
list = [1,2,3,4,5,6];
print(list)
# 使用下标访问元素
print(list[0]);# 1
# 访问数组的最后一个元素
print(list[len(list) - 1]);# 6
print(list[len(list) - 1]);# 6
# 向数组添加元素(尾部)
list.append(99);
print(list);# [1,2,3,4,5,6,99];
# 从数组中删除元素(尾部)
list.pop()
print(list);# [1,2,3,4,5,6]
# 删除对应位置的元素
list.pop(1);# 参数是数组的下标
print(list);# [1,3,4,5,6]
# 向指定位置添加元素 (此方法只接收两个参数,插入位置,插入元素)
list.insert(1,99);
print(list);# [1, 99, 3, 4, 5, 6]
# 更改数组指定下标的值
list[1] = 1111;# [1, 1111, 3, 4, 5, 6]
print(list);
# 数组下标越界
print(list[len]);# TypeError: list indices must be integers or slices, not builtin_function_or_method
有序列表:元组 tuple
一旦定义就不可变
#空tuple
tuple = ();
# 只有一个元素的tuple
tuple = (1);# 1 因为这里的小括号有歧义
tuple = (1,);# (1,)
# 定义一个多个值的tuple
tuple = (1,2,3,4);
print(tuple);# (1,2,3,4)
# 根据下标获取元素
print(tuple[0]); // # 1
# 不可变
tuple[0] = 1;# SyntaxError: invalid syntax
但有些情况下,tuple 也可以是可变的:
list= [1,2,3,4];
tuple = (list,{456},'lili','hanmeimei');# ([1, 2, 3, 4], {456}, 'lili', 'hanmeimei')
print(tuple);
list[1] = '11111';
print(tuple);# ([1, '11111', 3, 4], {456}, 'lili', 'hanmeimei')
# 看上去改变的是tuple 实际上是数组在改变而已,数组,对象之类的都是指向一个地址
如果要保证tuple的不可变,首先要保证它的子元素都是不可变的