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)),也可以指定下标位置插入元素insertIndexElement))

删除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 ' ]的物理存放位置,只是存放的指针而已。

 

猜你喜欢

转载自www.cnblogs.com/johnwatson/p/9958225.html