python学习之第九课时--基本数据类型(list)

  • list

list是一个有序的集合,序号从0起编,一个list中可以包含多种类型的数据

list转换列表

字符串,元组,列表 > 都可以转换成列表,转换成列表都是可以被for循环的

基本操作:索引 切片 追加 删除 长度 循环 包含

列表的类库功能

List.append(x)

添加一个元素到列表末尾,相当a[len(a):]=[x]

List.extend(L)

参数L是一个列表,通过添加给定列表的元素,相当a[len(a):]=L

List.insert(i,x)

在指定位置插入一个元素,第一个参数是位置,第二个是元素,a.insert(0,x)表示在列表的前面插入x

List.remove(x)

移除第一个值为x的元素,如果没有该元素,则报错

List.pop([x])

移除给定位置的元素,并且返回它,如果没有那个位置,则移除和返回list最后一个元素(中括号括起来的参数表明这个是可选项)

List.clear()

移除列表中的所有元素

List.index(x)

返回list中值为x的位置,如果没有该值则报错

List.count(x)

返回列表中x的个数

List.sort(key=None,reverse=False)

对列表中的元素进行排序

List.reverse()

反转列表中的元素

List.copy()

进行列表的浅复制

以上函数运行如图:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
mylist=[110,6.5,True,"hello"]
mylist.append(False)
print(mylist)       #[110, 6.5, True, 'hello', False] 添加元素False
mylist.insert(5,2.5)
print(mylist)       #[110, 6.5, True, 'hello', False, 2.5] 在索引为5的地方添加元素2.5
mylist.pop()
print(mylist)       #[110, 6.5, True, 'hello', False] 删除最后元素 2.5
mylist.pop(2)
print(mylist)       #[110, 6.5, 'hello', False]   删除索引为2的元素 True
mylist.sort()
print(mylist)       #[False, 6.5, 110, 'hello']  重新排列列表
mylist.reverse()
print(mylist)       #['hello', 110, 6.5, False]  反转列表中的元素
mylist.count(True)   #返回0
print(mylist)       #['hello', 110, 6.5, False]
mylist.index(False)  #返回元素False的索引 3
print(mylist)       #['hello', 110, 6.5, False]
mylist.remove("hello")
print(mylist)       #[110, 6.5, False]  #移除元素hello

切片

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#切片
a=["zou","lu","chen"]
print(a[0:2])
#输出 zou lu 这样就切片出了,第零一个和第二个下标的元素

统计列表里有多少个元素

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#切片
a=["zou","lu","chen"]
print(len(a))
#输出 3 统计列表里有多少个元素

循环列表

while循环

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#while循环
a = ["zou","lu","chen"]
b = 0
while b < len(a): #len(统计列表里的元素)
     print(a[b])
     b += 1
#循环出列表里的所有元素 zou lu chen

for循环

for循环每次循环到的数据就是列表的一个元素

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#for循环
a = ["zou","lu","chen"]
for b in a: #b为自定义循环变量
     print(b)
#循环出列表里的所有元素

extend(self, iterable) 

(扩展列表) 要扩展的可迭代变量:可迭代是只要是能通过for循环出来的都为可迭代  

也就是可以将一个列表扩展到另一个列表

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=["zou","lu","chen"]
b=["1","2","3"]
a.extend(b)
print(a)
#打印出['zou', 'lu', 'chen', '1', '2', '3'] 将一个列表扩展到另一个

删除元素

  索引方式删除(删除单个元素)

  格式:del 列表变量[要删除的下标]

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=["zou","lu","chen"]
del a[0]
print(a)
#打印出['lu', 'chen'] 删除元素zou

切片方式删除(删除多个元素)

  格式:del 列表变量[开始位置:结束位置]

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=["zou","lu","chen"]
del a[0:2]
print(a)
#打印出['chen'] 删除元素zou lu

range

   range函数可以产生一个连续的list,基本质还是list

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=range(10)
print(a)
print(type(a))

列表推导式

列表推导式书写形式:

[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]

#!/usr/bin/env python
# -*- coding:utf-8 -*-
a=range(10)
print(a)
b=[x**2 for x in a]
print(b)
c=([(x,x*10) for x in a])
print(c)
d=[(x,y) for x in a if x%2 if x>3 for y in a if y>7 if y!=8]
print(d)
e=[x*y for x in [1,2,3] for y in [1,2,3]]
print(e)

把列表当作栈来使用

List提供的一些方法使它很容易当作栈来使用,栈即是最后加入的元素最先取出(后进先出”),添加一个元素到栈的顶部使用append()方法,从栈的顶部取出一个元素使用pop()方法(不提供明确的索引)

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
stack=[2,3,4]
stack.append(0)
stack.append(1)
print(stack)
stack.pop()
print(stack)
stack.pop()
print(stack)

把列表当作队列使用

队列即是第一个加进来的元素第一个取出(“先进先出”)。列表对于这个设想并不是那么有效率,从列表前面进行插入和取出很慢,原因是后面的元素必须每个都进行移动

为了实现队列,使用collections.deque,deque的设计使得它能快速从两端插入和取出

如:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from collections import deque
queue=deque(["zou","lu","chen"])
queue.append("Bob")
queue.append("John")
print(queue)
queue.popleft()
print(queue)
queue.popleft()
print(queue)

列表的功能

转换列表

索引

切片

for循环

长度

删除元素

反转

排序

追加

插入

移除元素

索引位置

统计元素个数

扩展

清除

原文地址:https://www.cnblogs.com/LQ6H/p/python-9.html