概述
2018-10-31 第四课(列表、循环)
标签:Python
列表类型
用来有序存储数据的序列,可以存储任意数据类型
1.列表创建
a = [] 列表的个数是任意的,里面的数据也是任意类型
a = [元素1,元素2······] 元素没有类型限制,还可以是列表
eg. a = [1,2,“hello”,[1,2]]
b = [“world”,520,a]
2.列表访问
同字符串取法一样,参照第三课
-5-4-3-2-1
a = [0,1,2,3,4]
0 1 2 3 4
eg. a = [1,2,“hello”,[1,2]]
print(a[:-2:1])
遍历访问列表每一项 for i in list3:
eg.
a=“杨先生”
b=978728943
c=True
d=[]
list3=[a,b,c,d]
print(list3)
for i in list3:
print(i)
3.如何修改列表里面的元素
a[索引值] = 新的值
eg. a = [1,2,“hello”,[1,2]]
a[2] = 2
print(a)
可修改类型,不需重新赋值
4.添加元素
-append()
列表.append(添加的值) 从尾部开始添加
-insert()
列表.insert(索引值,新的元素)
eg. a = [1,2,“hello”,[1,2]]
a.insert(2,2)
print(a)
-extend()
列表1.extend(列表2) 把列表2的所有元素添加到列表1的尾部
eg. a = [1,2,“hello”,[1,2]]
b = [“world”,520]
a.extend(b)
print(a)
5.删除元素
-pop() 有返回值的,返回你删除的值
a.pop(索引值) 删除a列表对应索引的元素,索引值为可选参数,默认删除a列表最后一项元素
eg. a = [1,2,“hello”,[1,2]]
print(a.pop(-1)) //返回删除的值
print(a)
-del 删除值
1.删除创建的对象 2.删除内存中存在的变量 3.删除内存指向
-remove 删除规定内容的列表元素,删除的值必须存在
-clear 清除列表
eg.
list=[“abc”,“wqe”,“iop”,“fds”]
del list[0]
print(list)
list.remove(“wqe”)
print(list)
list.clear()
print(list)
6.改变列表元素
list[索引值]=新的值
eg. list[0]=“aaa”
7.查看列表元素
in判断元素是否在列表中,返回值true或者false
not in 与in相反
eg.
list=[“abc”,“wqe”,“iop”,“fds”]
name=“abc”
if name in list:
print(“在”)
else:
print(“不在”)
if name not in list:
print(“在”)
else:
print(“不在”)
8.其他方法
-index() 找到所查询的值第一次出现的索引位置
列表名.index(查询值[,start[,end]]) []中的表示可选参数 start开始位置 end结束位置
eg.
a = [1,4,6,2,3,2,4,2]
print(a.index(3))
-count()
a.count(b) 计算有多少个与b相同的值
eg. a = [1,4,6,2,3,2,4,2]
print(a.count(2))
-sort([reverse=True]) 从小到大对列表排序(同类型),[]中表示可选参数,reverse=True为从大到小,reverse=False为从小到大,默认从小到大
eg. a = [1,4,6,2,3]
a.sort()
print(a)
-reverse() 颠倒列表,将列表反转过来
eg. a = [1,2,“hello”,[1,2]]
a.reverse()
print(a)
注:sort、reverse 这种表示一个动作过程的不能写成print(a.reverse())这个类型,因为他们无返回值
循环
注意缩进位置
while 条件:
print(“yes”)
print(“no”)
while 条件:
print(“yes”)
print(“no”)
判断:== != < > <= >=
注Python中没有a++,自增写为a+=1
range() 函数 range()和for循环联合使用,用来产生一个列表,range(要产生的个数),可以通过该函数输出列表或元组的索引
range(1,3) ==> 1,2 不包含结束位置,顾头不顾尾
eg.
li1=[]
li2=[]
for i in range(5):
li1.append(i)
print(li1)
for i in range(3,15):
li2.append(i)
print(li2)
for i in range(len(li2)):
print(i)
#嵌套
格式 [[],[],[]]
eg.
a = ["a1","a2","a3"]
b = ["b1","b2","b3"]
c = ["c1","c2","c3"]
all = [a,b,c]
print(all)
print(all[1])
#提取嵌套列表中的整个列表,all列表中索引为1的列表
print(all[0][2])
#提取嵌套列表中的元素,all列表中索引为0的列表的索引为2的元素
练习1:输入一个正整数,将它的公约数添加到一个列表中
a = input("请输入一个正整数:")
print("你输入的正整数为:"+a)
a=int(a)
n = 1
b = []
while n<=a:
if a%n==0:
b.append(n)
n+=1
print(b)
练习2:假设红细胞有1个,白细胞有20个,每分钟分裂一次。分裂完毕之后红细胞会吞噬与自己等量的白细胞。问多少分钟后白细胞消失
redcell = 1
whitecell = 20
minute = 0
while whitecell>0:
whitecell-=redcell
redcell*=2
whitecell*=2
minute+=1
print(minute)
练习3:实现斐波那契数列(1 1 2 3 5 8 13 21),求第20项
n = input("请输入所求的斐波那契的第几项:")
n = int(n)
list = [1,1]
i = 2 #下标0 1 2 3
列表下一项的下标
j = 3 #项数1 2 3 4
列表下一项的项数
while j<=n:
c = list[i - 1] + list[i - 2]
list.append(c)
i+=1
j+=1
print("所求项数的值为:")
print(c)
print("到该项的斐波那契数列为:")
print(list)
#简便写法
def fab(max):
n, a, b = 0, 0, 1
while n < max:
print(b)
a, b = b, a + b
n = n + 1
fab(10)
列表推导式
列表推导式的作用:
1,代码优化 2,快速生成数据
列表推导式 ------一行超人
指使用轻量级循环创建列表
a = [i for i in range(6)]
print(a,type(a))
[(循环接受变量)(生成区域)]
例如
a = [i for i in range(2,9,2)]
print(a,type(a))
列表推导式使用判断
[(循环接受变量)(生成区域for循环)+(if判断条件)]
例如
c = []
for y in range(1,10):
if y % 2 == 1:
c.append(y)
print(c,type©)
可改为列表推导式
d = [x for x in range(1,10) if x % 2 == 1]
print(d,type(d))
列表推导式使用多个for循环
b = [(x,y) for x in range(0,3) for y in range(1,4)]
print(b,type(b))
f = [(x,y,z) for x in range(1,3) for y in range(0,3) for z in range(4,6)]
print(f)
最后
以上就是合适台灯为你收集整理的Python的列表与循环2018-10-31 第四课(列表、循环)列表类型循环列表推导式的全部内容,希望文章能够帮你解决Python的列表与循环2018-10-31 第四课(列表、循环)列表类型循环列表推导式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复