list和tuple list:列表[] tuple:元组()

list和tuple
list:列表[]
tuple:元组()


title: list和tuple
date: 2017年3月28日 18:55:33
categories: python

查看数据类型的方法:

help(类型):输出该类型的所有方法,及其详细的解释。
dir(类型): 将类型的所有方法以列表的形式输出。

list是python内置的一种列表。list是一种有序的集合,可以随时添加删除修改其中的元素。

例如用list存储班级同学的姓名:

>>>classname=["xiaoming","Michael","jeck"]
>>>classname
["xiaoming","Michael","jeck"]

变量classname就是一个list,可以用len()来获得list中有多少个元素。

>>>len(classname)
3

用索引来访问list中的每一个位置的元素,索引是从0开始:

>>>classname[0]
"xiaoming"
>>>classname[1]
"Michael"
>>>classname[3]
超出范围会报错:
IndexError:list index out of range

除了用正数索引外,还可以用负数索引。

list[-1]:表示最后一个元素
list[-2]:表示倒数第二个元素

插入

list是一个可变的序列表,所以可以往list中追加元素。

list.append:追加到尾部.

>>>a = [1,2,3]
>>>a.append(4)
>>>a
[1,2,3,4]

list.insert(index,element):追加到指定位置。

>>>a=[1,2,3,4,6]
>>>a.insert(4,5) #4是列表中的位置6的位置,在他前面插入5
>>>a
[1,2,3,4,5,6]

删除

list.pop():删除list末尾的元素。

>>>a=[1,2,3,4,5]
>>>a.pop()
>>>a
[1,2,3,4]

list.pop(index):删除指定位置的元素:

>>>a=[1,2,3,4,5]
>>>a.pop(0)
>>>a
[2,3,4,5]

除此之外还有list.rmove(element):删除指定的元素,如果有重复的则删除左边最近的。

>>>a = [1,2,3,4,5,1]
>>>a.rmove(1)
>>>a
[2,3,4,5,1]

del list[index] :删除指定位置的元素。

替换

如果想要替换list中的某个元素。可以直接赋值:

>>>a =[1,2,3,4,5]
>>>a[4]=6
>>>a
[1,2,3,4,6]

查找

list.index(element) :返回index值。

list.count(element) : 返回重复元素的个数

清空和扩展

list.clear():清空列表中元素。

del list :删除整个列表。

a=[1,2,3]

b=[4,5,6]

a.exted(b) :将b中的元素加到a中。b中元素不变。

a=[1,2,3,4,5,6]

b=[4,5,6]

反转,排序

a=[1,2,3,4]

a.reverse() :反转

a=[4,3,2,1]



a=["a","c","b","d"]

a.sort() :排序

a=["a","b","c","d"]

如果列表中既存在数字又存在字符,在python3中会报错,所以数字需要用引号转化成字符。
排列是按ASCII码排列,依然是数字在前。

深拷贝和浅拷贝

浅拷贝:

a=[1,2,3,4]
b=a

a=[1,2,3,4]
b=[1,2,3,4]

a.pop()  #删除最后一个元素
a=[1,2,3]
b=[1,2,3] #b中的元素也会跟着改变

深拷贝:

copy()

a=[1,2,3,["a","b","c"]]
b=a.copy()
b=[1,2,3,["a","b","c"]]

a.remove(1)
a=[2,3,["a","b","c"]]
b=[1,2,3,["a","b","c"]

a[2][0]="A"

a=[2,3,["A","b","c"]]
b=[1,2,3,["A","b","c"]]

copy.deepcopy()

a=[1,2,3,4,["a","b"],5]
b=copy.deepcopy(a)

b=[1,2,3,4["a","b"],5]

a.pop()  #删除最后一个元素


a=[1,2,3,4,["a","b"]]
b=[1,2,3,4,["a","b"]]


a[4][1]="A"


a=[1,2,3,4,["A","b"]]
b=[1,2,3,4,["a","b"]]

tuple:元组()

另一种有序的列表叫元组,tuple和list非常相似,但是tuple一但初始化就不能再更改,比如:

>>>a = (1,2,3,4,5)

现在a就是一个tuple,他不能改变,所以没有insert和append等方法。获取元素的方法和list一样。

如果要定义一个空的tuple可以写成:

>>>tuple=()
>>>tuple
()

如果要定一个只有一个元素的tuple,可以:

>>>tuple=(1,)
>>>tuple
(1,)

如果不加, 而只写(1),这里就会把括号当成运算来看。运算结果为1.

>>>a=(1)
>>>a
1

tuple的方法:count和index