当前位置:   article > 正文

06-列表与for循环及range()函数_使用for循环和range函数实现新的列表为 2.4

使用for循环和range函数实现新的列表为 2.4

课堂笔记

1.序列

1.序列是Python中最基本的⼀种数据结构。
  • 1

——

2.序列⽤于保存⼀组有序的数据,
  • 1

——

3. 所有的数据在序列当中都有⼀个唯⼀的位置(索引)
  • 1

——

4.序列中的数据会按照添加的顺序来分配索引
(数据结构指计算机中数据存储的⽅式)
  • 1
  • 2
1.2 序列的分类
a.可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
  • 1

——

b.不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)
  • 1

2. 列表(list)

1.列表是Python中的⼀个对象
  • 1

——

2.列表的作⽤
      a.列表中可以保存多个有序数据
      b.列表是用来存储对象的对象
  • 1
  • 2
  • 3

——

3.列表中可以保存多个有序的数据
  • 1

——

4.列表是⽤来存储对象的对象
  • 1

在这里插入图片描述

#列表可以存储不同类型的数据
list1=[12,"python",True,None,[1,2,3]]
print(list1)
#列表是一个对象:存储对象的对象
print(list1[3]) #取列表的第四个元素
print(len(list1)) #列表的长度
print(list1[-1])#取倒数第一个元素



C:\Users\dell\PycharmProjects\untitled11\venv\Scripts\python.exe C:/Users/dell/PycharmProjects/untitled11/Day4/列表.py
[12, 'python', True, None, [1, 2, 3]]
None
5
[1, 2, 3]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
2.1列表的使⽤
1.列表的创建:通过[]来创建⼀个空列表
  • 1
2.2 切⽚
1.切⽚是指从现有列表中获得⼀个⼦列表
  • 1

——

2.通过切⽚来获取指定的元素
  • 1

——

3.语法: 列表[起始 : 结束 : 步⻓]
  • 1

——

4.通过切⽚获取元素时,会包括起始位置的元素,不会包括结束位置的元素
  • 1

——

5.起始位置和结束位置的索引可以不写
   a.如果省略结束位置, 则会从当前的开始位置⼀直截取到最后
   b.如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结束的元素
   c.如果开始位置和结束位置都省略, 则则会从第⼀个元素开始截取到最后⼀个元素
  • 1
  • 2
  • 3
  • 4

——

6.步⻓表示每次获取元素的间隔,默认是1(可以省略不写)
  • 1

——

7.步⻓不能是0,但可以是是负数
  • 1
#切片是指从现有的序列当中,取出一个子序列,我们可以通过切片去获取
#语法: list[起始位置:结束位置:步长]  左闭右开区间
#默认语法: [0:最后:1]----> list[:]
#切片不会影响原来的序列,而会产生新的列表


hero=['项羽','刘邦','张良','范增','韩信']

print(hero[0:2]) #['项羽', '刘邦']
print(hero) #['项羽', '刘邦', '张良', '范增', '韩信']
print(hero[-1:-3:-1]) #['韩信', '范增']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
['项羽', '刘邦']
['项羽', '刘邦', '张良', '范增', '韩信']
['韩信', '范增']

  • 1
  • 2
  • 3
  • 4

3. 通⽤操作

 1. + 和 *
     a.   + 可以将两个列表拼接成⼀个列表
     b.  * 可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法算)
  • 1
  • 2
  • 3
#加法操作
"""
a=[1,2,3]+[4,5,6]
print(a)#[1, 2, 3, 4, 5, 6]
"""

#列表无减法除法运算

#列表有乘法
"""
a=[1,2,3]
a=a*4
print(a)#[1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
"""
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

——

2. in 和 not in
    in⽤来检查指定元素是否在列表当中
    not in ⽤来检查指定元素是否不在列表当中
  • 1
  • 2
  • 3
"""
#in 用来检测指定元素是否在列表中
a=[1,2,3,4,5,6]
print(4 in a)#True
#not in 用来检测指定元素是否不在列表中
print(4 not in a)#False
"""

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

——

 3.len() 获取列表中元素的个数
  • 1
list1=[12,"python",True,None,[1,2,3]]
print(len(list1)) #列表的长度
  • 1
  • 2
5
  • 1

——

 4.max() 获取列表中最⼤值
  • 1
#max() 寻找列表中的最大元素
print(max([1,2,3,4,5,8]))#8

  • 1
  • 2
  • 3

——

 5.min() 获取列表中最⼩值
  • 1
#min() 寻找列表中最小的元素
print(min([-1,-9,7,8,]))#-9
  • 1
  • 2

——

6.list.index(x[, start[, end]])
      第⼀个参数 获取指定元素在列表中的位置
      第⼆个参数 表示查找的起始位置
      第三个参数 表示查找的结束位置
  • 1
  • 2
  • 3
  • 4
#list.index("元素名") 查找数据 返回的是一个列表的索引
hero=['项羽','刘邦','张良','范增','韩信']
print(hero.index('韩信'))#4
  • 1
  • 2
  • 3

——

7.list.count(x) 统计指定元素在列表中出现的个数
  • 1
#list.count('元素名') 获取列表中一个元素相同的数量
hero=['项羽','刘邦','张良','范增','韩信','张良','张良','张良']
print(hero.count('张良')) #4
  • 1
  • 2
  • 3

——
在这里插入图片描述

4. 修改列表

1.通过切⽚来修改(起始就是给切⽚的内容重新赋值,但是赋值的内容必须是⼀个序列)
  • 1

——

 2.当设置了步⻓时,序列中元素的个数必须和切⽚中元素的个数保持⼀致
  • 1

——

3.通过切⽚来删除元素   
  del list[起始 : 结束]
  list = []
  • 1
  • 2
  • 3
#字符串的字符不能修改
#del list[索引号] 关键字删除
hero=['项羽','刘邦','张良','范增','韩信',[[1,2,3],[2],[3]]]
del hero[5][0][2] #['项羽', '刘邦', '张良', '范增', '韩信', [[1, 2], [2], [3]]]
print(hero)
  • 1
  • 2
  • 3
  • 4
  • 5
C:\Users\dell\PycharmProjects\untitled11\venv\Scripts\python.exe C:/Users/dell/PycharmProjects/untitled11/Day4/修改列表.py
['项羽', '刘邦', '张良', '范增', '韩信', [[1, 2], [2], [3]]]

Process finished with exit code 0
  • 1
  • 2
  • 3
  • 4

5. 列表的⽅法

1.append() 像列表的最后添加⼀个元素
  • 1
hero=['项羽','刘邦','张良','范增','韩信']
#添加操作 一般添加在末尾
hero.append('萧何') #
print(hero)

  • 1
  • 2
  • 3
  • 4
  • 5
['项羽', '刘邦', '张良', '范增', '韩信', '萧何']
  • 1

——

2.insert(arg1,arg2) 像列表指定位置插⼊⼀个元素 参数1:要插⼊的位置 参数2:要插⼊的元素
  • 1
#list.insert() 向列表中的指定位置插入一个元素,第一个参数是要插入的位置,第二个参数是要插入的元素
#list.insert(插入的位置,插入的元素)
hero=['项羽','刘邦','张良','范增','韩信']
hero.insert(2,"曹参")  #['项羽', '刘邦', '曹参', '张良', '范增', '韩信']
print(hero) 
  • 1
  • 2
  • 3
  • 4
  • 5
['项羽', '刘邦', '曹参', '张良', '范增', '韩信']
  • 1

——

3.extend(iterable) 使⽤⼀个新的序列来扩展当前序列(它会将该序列的中元素添加到列表中) 参数需要传递⼀个序列
  • 1
#list.extend()使用新的序列添加进去,添加到列表最后
hero=['项羽','刘邦','张良','范增','韩信']
hero.extend(["樊哙","陈平",["纪信","项伯"]]) #
print(hero)
  • 1
  • 2
  • 3
  • 4
['项羽', '刘邦', '张良', '范增', '韩信', '樊哙', '陈平', ['纪信', '项伯']]
  • 1

——

4.pop() 根据索引删除并返回指定元素
  • 1
#列表的删除操作
#list.pop() 根据索引删除并返回执行的元素,如果不传递索引,默认删除最后一个
hero=['项羽','刘邦','张良','范增','韩信']
result=hero.pop(1) #删除了第二个元素,result表示删除的元素
print(result,hero)
result=hero.pop() #韩信 ['项羽', '刘邦', '张良', '范增']
print(result,hero)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
刘邦, ['项羽', '张良', '范增', '韩信']
韩信 ['项羽', '张良', '范增'] 
  • 1
  • 2

——

5.remove() 删除指定元素 (如果相同值的元素有多个,只会删除第⼀个)
  • 1
#list.remove()  删除指定的元素
hero=['项羽','刘邦','张良','范增','韩信']
hero.remove("项羽") #
print(hero)
  • 1
  • 2
  • 3
  • 4
['刘邦', '张良', '范增', '韩信']
  • 1

——

6.reverse() 翻转列表
  • 1

#list.reverser() 反转列表
hero=['项羽','刘邦','张良','范增','韩信']
hero.reverse()#
print(hero)  
  • 1
  • 2
  • 3
  • 4
  • 5
['韩信', '范增', '张良', '刘邦', '项羽']
  • 1

——

7.sort(key=None,reverse=False) ⽤来对列表中的元素进⾏排序 reverse:True反序;False 正序
  • 1
#list.sort() 对列表中的元素进行排序,默认是升序
hero=list("kajfkjajfkkfjkjv")
hero.sort(reverse=True)#reverse表示反转降序 
print(hero)
  • 1
  • 2
  • 3
  • 4
 ['v', 'k', 'k', 'k', 'k', 'k', 'j', 'j', 'j', 'j', 'j', 'f', 'f', 'f', 'a', 'a']
  • 1

——

6. 遍历列表

6.1 for循环
通过for循环来遍历列表:
					    语法:
					    for 变量 in 序列(遍历的规则):
					            代码块
  • 1
  • 2
  • 3
  • 4

——

注意: for循环的代码块会执⾏多次,序列中有⼏个元素就会执⾏⼏次。每执⾏
⼀次就会将序列中的⼀个元素赋值给变量,所以我们可以通过变量来获取列表
中的元素
  • 1
  • 2
  • 3

在这里插入图片描述

#语法:for 变量 in 序列:
#           代码块


hero=['项羽','刘邦','张良','范增','韩信','周勃']
for i in hero:
    print(i) #项羽
             #刘邦
             #张良
             # 范增
             # 韩信
             # 周勃
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
项羽
刘邦
张良
范增             
韩信           
周勃            
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
list1=[1,2,3,4,5]
list2=[]
for i in list1:
    i+=1
    list2.append(i)

    print(list2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
[2]
[2, 3]
[2, 3, 4]
[2, 3, 4, 5]
[2, 3, 4, 5, 6]
  • 1
  • 2
  • 3
  • 4
  • 5
6.2 range(start, stop[, step])
参数说明
·start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于
range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1,
2, 3, 4]没有5
step:步⻓,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

#语法: range(开始位置,结束位置,步长) 左闭右开型
print(list(range(9)))#[0, 1, 2, 3, 4, 5, 6, 7, 8]
for i in range(9):
    print(i)
  • 1
  • 2
  • 3
  • 4
[0, 1, 2, 3, 4, 5, 6, 7, 8]
0
1
2
3
4
5
6
7
8

Process finished with exit code 0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

作业

1题.不用函数反转列表

a=[1,2,3,4,5,6]
print("反转前:",a)
a=a[::-1]
print("反转后:",a)

  • 1
  • 2
  • 3
  • 4
  • 5
C:\Users\dell\PycharmProjects\untitled11\venv\Scripts\python.exe C:/Users/dell/PycharmProjects/untitled11/Day4/作业/第一题.py
反转前: [1, 2, 3, 4, 5, 6]
反转后: [6, 5, 4, 3, 2, 1]

  • 1
  • 2
  • 3
  • 4

2题.给用户九次机会,猜1-10个数字随机来猜数字,如果随机的数字和用户输入的数字一致则表示正确,如果不一致表示错误,最终结果要求用户怎么也猜不对

import random

a=[]
j=0
for i in range(10):
    s=random.randint(0,10)
    a.append(s)

#print(a)

while j<9:
    print(f"第{j+1}次机会:")
    b = eval(input("请输入一个1到10数字的任意一个数字,你有九次输入的机会:"))
    if b>10:
        print("输入有误,重新输入")
    if b in a:
        a.remove(b)
    j+=1
    print("错误")
else:
    print("次数已经超过九次")
    print(a[0],"是中奖数字")



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
C:\Users\dell\PycharmProjects\untitled11\venv\Scripts\python.exe C:/Users/dell/PycharmProjects/untitled11/Day4/作业/第二题.py
第1次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:9
错误
第2次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:8
错误
第3次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:7
错误
第4次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:6
错误
第5次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:5
错误
第6次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:4
错误
第7次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:3
错误
第8次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:2
错误
第9次机会:
请输入一个110数字的任意一个数字,你有九次输入的机会:1
错误
次数已经超过九次
3 是中奖数字

Process finished with exit code 0

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

3题.找出list1与list2中相同的数

lst1=[11,22,33]
lst2=[22,33,44]

for i in lst2:
    if i in lst1:
        print(i)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
22
33
  • 1
  • 2

4题. 将八位老师分配到三个办公室中,每个办公室至少有一位老师

import random

teacher=[1,2,3,4,5,6,7,8]#八位老师

room=[[],[],[]]#3个办公室


print("随机分配后;")

while True:
    for i in teacher:
        #print(i)


        room[random.randint(0,2)].append(i)
        #print(room)
    if len(room[0])!=0 and len(room[1])!=0 and len(room[2])!=0:
        print(room)
        break
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
C:\Users\dell\PycharmProjects\untitled11\venv\Scripts\python.exe C:/Users/dell/PycharmProjects/untitled11/Day4/作业/第四题.py
随机分配后;
[[1, 2], [3, 5, 8], [4, 6, 7]]
`

```python

随机分配后;
[[5, 7], [3, 6, 8], [1, 2, 4]]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
随机分配后;
[[1, 3], [2, 4, 7], [5, 6, 8]]

  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/880632
推荐阅读
相关标签
  

闽ICP备14008679号