列表(可变数据类型)
列表是python中非常重要的数据类型,通常作为函数的返回类型。列表和元组相似,也是由一组元素组成,列表可以实现添加、删除和查找操作,元素的值可以被修改。
思维导图:
列表的定义
列表是打了激素的数组,数组只能存储同种类型的数据,而列表像一个仓库,存储不同类型的数据.
l = [] ##空列表
l = [1] ##1个元素的列表
l = [1,(1,2),”hello”,[1,2]]
列表的特性
- 索引
和元组索引类似
l=[1,(1,2),"hello",[1,2]]
print l[1][1]
print l[-2][-2]
print l[-1][1]
- 切片
l=[1,(1,2),"hello",[1,2]]
print l[2::]
print l[-2::-1]
- 重复
l=[1,(1,2),"hello",[1,2]]
print l*2
print l[2::]*2
print [1,2]*2
- 连接
l=["hello","world"]
l1=["hello","everbody"]
print l+l1
- 判断子元素
l=["hello","world"]
print "hello" in l
列表的方法
增加:
- l.append() //末尾追加单个元素
l=["hello","world"]
l.append([2,1])
print l
- l.extend() //末尾追加多个元素,用“()“或者“[]“都可
l=["hello","world"]
l.extend([2,1])
print l
l=["hello","world"]
l.extend([(2,),(1,)])
print l
print type(l[3])
- l.insert(index,元素) //指定位置插入单个元素
l=["hello","world"]
l.insert(1,"!")
print l
删除
- l.remove() //删除第一个遇到的元素值,无返回值!
l=["hello","world"]
l.remove("hello")
print l
l=[“hello”,”world”,”hello”,”everbody”]
l.remove(l[1])
print l
- l.pop() //删除指定的索引所在的元素,默认删除最后一个,返回值为索引对应的值!
l=["hello","world","!"]
print l.pop(1)
print l
l=["hello","world","!"]
print l.pop()
print l
- del(list) //删除列表
l=["hello","world","!"]
del(l)
print l
修改:
直接根据索引进行修改
l[0]=”value” l[0][1]=”value”
l=["hello","world","!",["hello","everbody"]]
l[3][1]="anybody"
print l
查看列表信息
- l.count() //查找某个元素出现的次数
- l.index() //查找某个元素最小的索引
- len(l) //查看列表长度
l=["hello","world","!",["hello","everbody"],"hello"]
print l.count("hello")
print l.count(["hello","everbody"])
print l.index("hello")
print len(l)
排序
- l.sort() //列表排序,元素按照首字母升序排序,返回sort后的列表
l=["hello","world","!",["hello","everbody"],"hello",1,3]
l.sort()
print l
- l.reverse() //列表逆转,返回reverse后的列表
l=["hello","world","!",["hello","everbody"],"hello",1,3]
l.reverse()
print l
内置方法
min(),max(),len(),zip(),enumerate(),sum(),sorted(),reversed()
- min() //返回list的最小值
- max() //返回list的最大值
- sum() //求和
len(list)//列表的长度
zip()//zip([seql, …])接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。
user=["root","kiosk"]
passwd=["redhat","westos"]
a=zip(user,passwd)
print a
print a[0]
print a[1]
print a[0][1]
- enumberate() //同时需要index和value值
l=["apple","banana","grape"]
print list(enumerate(l))
for i,j in enumerate(l):
print i,j
- sorted(list) //返回值为列表,sorted() 原列表未被改变,sort()原列表被改变了
l=[1,5,7,2,0,9]
list=sorted(l)
print l
print list
str=sorted("c a b".split())
print str
- reversed(list) // 不改变原list
l=["hello","world","hello","everbody"]
for i in reversed(l):
print i,
1.通过列表实现堆栈的数据结构;
堆栈是一个后进先出的数据结构,实现如下:
l.append()实现入栈
l.pop()实现出栈
2.通过列表实现队列的数据结构;
队列的实现:
l.append()实现进队操作
l.pop(0)实现出队操作