python 第二章 列表,if循环

列表

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

Python有6个序列的内置类型,但最常见的是列表和元组。

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,6,7] #定义一个列表
 5 
 6 print(list[0])    #通过索引取值
 7 print(list[-1])  #支持倒取-1表示最后一个
 8 list[0]=8 #通过索引修改值
 9 print(list)
10 
11 #输出
12 1
13 7
14 [8,2,3,4,5,6,7]

给列表添加元素

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,6,7]
 5 list.append(10) #在列表末尾添加元素
 6 print(list)
 7 list.insert(1,10) #指定索引位置插入元素,把元素插入到置顶位置 比如索引号为 1的位
 8 print(list)
 9 list1 = [9,8,7,6,5] #定义一个list1 列表
10 list.extend(list1)  #扩展原列表,参数为可迭代对象(可以被for循环遍历的)
11 print(list)
12 #输出
13 [1, 2, 3, 4, 5, 6, 7, 10]
14 [1, 10, 2, 3, 4, 5, 6, 7, 10]
15 [1, 10, 2, 3, 4, 5, 6, 7, 10, 9, 8, 7, 6, 5]

列表拷贝可以用copy(),也可以直接赋值但是建议使用copy()方法,也可以用切片的方法

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,6,7,8,9]
 5 a = list.copy()  #拷贝,复制,浅拷贝
 6 print(a)
 7 b = a[:] #切片的方法
 8 print(b)
 9 #输出
10 [1, 2, 3, 4, 5, 6, 7, 8, 9]
11 [1, 2, 3, 4, 5, 6, 7, 8, 9]

计算元素在列表中出现了几次,获取当前元素的索引位置,以及len()函数

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,5,5,6,7]
 5 a = list.count(5) #计算元素在列表中出现几次
 6 print(a)
 7 b = list.index(6,3,9) #根据值获取当前值的索引位置 从左开始,可以在参数后加上 从第几个开始 第几个结束,不写默认从1开始
 8 print(b)
 9 c = len(list) #确定列表的长度
10 print(c)
11 #输出
12 3
13 7
14 9

删除列表元素,清空列表

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [1,2,3,4,5,6,7,8,9,9,2]
 5 del list[0] #通过索引删除,永久删除并不可以在使用其值
 6 print(list)
 7 
 8 list.pop() #通过索引删除,但是可以把其重新赋值给一个变量,还可以继续使用,默认从最后往前删
 9 b = list.pop()
10 print(b)
11 
12 list.remove(2) #根据值删除元素
13 print(list)
14 
15 list.clear() #清空列表
16 print(list)
17 #输出
18 [2, 3, 4, 5, 6, 7, 8, 9, 9, 2]
19 9
20 [3, 4, 5, 6, 7, 8, 9]
21 []

列表排序

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 list = [0,1,2,3,4,5,6]
 5 a = sorted(list) #临时排序
 6 print(a)
 7 
 8 b = sorted(list,reverse = True) #反向临时排序
 9 print(b)
10 
11 list.sort() #永久排序
12 print(list)
13 
14 list.sort(reverse = True) #反向排序
15 print(list)
16 
17 list.reverse()  #反转列表,但不是按顺序。 如果想返回需要再次调用reverse()
18 print(list)
19 #输出
20 [0, 1, 2, 3, 4, 5, 6]
21 [6, 5, 4, 3, 2, 1, 0]
22 [0, 1, 2, 3, 4, 5, 6]
23 [6, 5, 4, 3, 2, 1, 0]
24 [0, 1, 2, 3, 4, 5, 6]

使用range()函数创建列表,对数字列表进行简单的统计计算

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 a = list(range(10)) #只会生成0-9
 5 print(a)
 6 
 7 print(min(a)) #列表最小值
 8 print(max(a)) #列表最大值
 9 print(sum(a)) #列表总和
10 #输出
11 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
12 0
13 9
14 45

and,or,in,not in 用法

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 and 只要有一个为False结果就为False
 5  1>2and2>3
 6 False
 7  1<2 and 2<3
 8 True
 9  1>2 and 2<3
10 False  
11 
12 or 只要有一个为True 结果就为True
13  1>2 or 2>3
14 False
15  1>2 or 2<3
16 True
17 
18 检查元素是否在列表中: in
19 a = [1,2,3,4,5,6,6]
20  2 in a
21 True
22  7 in a
23 False
24 
25 检查元素是否不在列表中: not in
26 a = [1,2,3,4,5,6,6]
27  2 not in a
28 False
29  7 not in a
30 True

求模运算符

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 4%3
 5 1
 6 5%3
 7 2
 8 6%3
 9 0
10 7%3
11 2
12 """求模运算不会指出一个数是另一个数的多少倍,而只是指出余数是多少

if else 语句

如果if语句结果为True则运行if下面的程序
否则运行else 下面的程序

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 """如果一个数被另一个数整除,余数为0,因此求模运算符将返回0,可以利用这点来判断一个数是奇数还是偶数"""
 5 
 6 a = 7
 7 if a % 2 == 0:
 8     print("这是一个偶数")
 9 else:
10     print("这是一个奇数")

if elif else 语句
如果if语句结果为True则运行if下面的程序
如果elif语句结果为True则运行elif下面的程序
否则运行else 下面的程序

#!/usr/bin/env python
# -*- coding:utf-8 -*-

"""这是一个判断学生成绩评分的if语句"""

temp =int(input('输入一个分数:'))
if (60 <= temp < 80):
    print("C")
elif (80 <= temp < 90):
    print("B")
elif (90 <= temp <= 100):
    print("A")
else:
    print("不及格")

列表解析式 a = [i for i in range(10)]

列表生成式

写列表生成式时,把要生成的元素放到前面,后面跟for循环就可以把list创建起来

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 a = [x*x for x in range(10) ]
 5 print(a)
 6 
 7 #for循环后面还可以加上if判断
 8 a = [x*x for x in range(10) if x%2==0]
 9 print(a)
10 
11 #还可以使用两层循环
12 a = [m+n for m in "ABC" for n in "XYZ"]
13 print(a)
14 #输出
15 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
16 [0, 4, 16, 36, 64]
17 ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

切片

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 
 4 a = [1,2,3,4,5,6,7,8,9]
 5 print(a[0:3]) #显示前三个元素
 6 print(a[2:6]) #显示从3到第6个元素
 7 print(a[-3:]) #显示最后三个元素
 8 #输出
 9 [1, 2, 3]
10 [3, 4, 5, 6]
11 [7, 8, 9]

猜你喜欢

转载自www.cnblogs.com/xyx2018/p/9575152.html