python的list和tuple
list
Python的内置数据类型。list是一种有序的集合,可以随时添加和删除其中的元素(ArrayList?)
举例:列出一个班的所有同学:classmates=['Amily','BlackBerry','Candy','Emma']
变量classmates就是一个list,len()函数可以获得list元素的个数
可以直接使用下标获取元素
但是当超出范围以后就会报越界错误:IndexError。下标从0开始,到 len(classmates)-1 结束,还可以直接用 classmates[-1] 直接获取最后一个元素,-2是倒数第二个,-3是倒数第三个
list可变有序,可以往list末尾追加元素(append(Element)),也可以指定下标位置插入元素(insert(Index,Element))
要删除list末尾的元素,用pop()方法,返回值是最后一位元素
要删除指定位置的元素,用pop(i)方法,i是索引位置(从0开始)
要把某个元素替换成别的元素,可以直接赋值给对应的索引位置
list里的元素的数据类型也可以不同!(动态语言的好处) list元素也可以是另一个list(classmates就是上述的list)
但
原因是list只作为一个元素而不拆开计算。
tuple
另一种有序列表,元组。tuple和list类似,但是tuple一旦初始化就不能再修改,没有append方法和insert方法,pop也没有,只读数组
特别注意:
定义空元组可以使用 t= ( ) ,这时打印结果是 ()
但如果 t=(1),打印结果就是1,因为这样定义的tuple不是元组,而是数字1,因为括号()既可以表示tuple也可以表示数学中的小括号,Python规定这种情况下按照小括号进行计算,是计算,结果是1,
为了避免这种情况规定 t= ( 1,) 加个逗号。为了统一,在只显示一个元素时tuple都会加个逗号。
怎样实现tuple可变?
简单,tuple里面塞一个list进去就可以了。
t=( 1 , 2 , [ ' A ' , ' B ' ] , 3 )
要改变tuple:
t [ 2 ] [ 0 ] ='X'
t [ 2 ] [ 1 ] ='Y'
这样即可改变tuple。原理是t中的list位置指向list [ ' A ' , ' B ' ]的物理存放位置,只是存放的指针而已。