Python基础之列表操作方法

列表

序列

  • 基本概念:序列是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引。数据结构指计算机中数据存储的方式。

  • 序列的分类:
    1.可变序列(序列中的元素可以改变):例如列表(list)
    2.不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)
    *** 列表***

  • 含义:列表是Python中的一个对象

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

  • 列表的使用:

    1.创建:

    可以通过[]创建,活着使用list()转换

    a=[1,2,3,4]
    b=(1,2,3,4)
    c=list(b)
    print(a)
    print(c)      #输出和a一样
    

    2.切片

    含义:切片是指从现有列表中获取一个子列表,通过切片来获取指定的元素。
    语法:列表[起始:结束:步长]。(注:通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素。起始位置和结束位置的索引可以不写,如果省略结束位置, 则会从当前的开始位置一直截取到最后。如果省略开始位置, 则会从第一个元素截取到结束的元素,但是不包括结束的元素。如果开始位置和结束位置都省略, 则则会从第一个元素开始截取到最后一个元素。步长表示每次获取元素的间隔,默认是1(可以省略不写)。• 步长不能是0,但可以是是负数,如果为负数,则表示从右往左取)

    a=[1,2,3,4,5,6]
    print(a[1:3])     #不会取到1,但会取到3,表明会包含起始位置的元素,但不会包含结束位置的元素。
    print(a[1:])  #如果省略结束位置,则会截取到最后一个元素。
    print(a[1::2])  #步长为2,表示隔一个在取。
    print(a[-1:-3:-1])  #步长为负,表示从右往左取。
    

3.通用操作:

  • +和*:"+“表示把二个列表拼接成一个列表。” * "表示可以将列表重复指定的次数(注:2个列表不能够做乘法,要和整数做乘法运算)
a=[1,2,3,4,5]
b=["a","b","c"]
print(a+b)
print(b*2)
  • in 和 not in : in是用来检测指定元素是否在列表当中,not in 是用来检查指定元素是否不在列表中。
b=["a","b","c"]
print("a" in b)      #因为a在列表b中所以输出为True.
print("a" not in b )   #输出为False
  • len() 获取列表中元素的个数。
  • max() 获取列表中最大值
  • min() 获取列表中最小值
  • list.index(x[,start[,end]]) 第一个参数 获取指定元素在列表中的位置。第二个参数 表示查找的起始位置。第三个参数 表示查找的结束位置。
  • list.count(x) 统计指定元素在列表中出现的个数

-此处不一一演示,有兴趣的可以自己去操作试试。

4 修改列表:

  • 通过切片修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)。注意:当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致。
b=["a","b","c"]
b[2:3]="Hello World"
print(b)
b[1:4:2]=["Hello", "World"]
print(b)
  • 通过下标修改
b=["a","b","c","d"]
b[2]="World"
print(b)

5 列表的方法

  • append() 像列表的最后添加一个元素
  • insert(arg1,arg2) 像列表指定位置插入一个元素 参数1:要插入的位置 参数2:要插入的元素
  • extend(iterable) 使用一个新的序列来扩展当前序列(它会将该序列的中元素添加到列表中) 参数需要传递一个序列
  • pop() 根据索引删除并返回指定元素
  • remove() 删除指定元素 (如果相同值的元素有多个,只会删除第一个)
  • reverse() 翻转列表
  • sort(key=None,reverse=False) 用来对列表中的元素进行排序 reverse:True反序;False 正序
#列表方法的演示:
b=["b","d","a","g"]
c=['e','f']
b.append("Hello World")
print(b)
b.insert(1,"Hello")
print(b)
b.extend(c)
print(b)
b.pop()
print(b)
b.remove("Hello World")
print(b)
b.sort()
print(b)
b.sort(reverse=True)
print(b)
#输出结果:
['b', 'd', 'a', 'g', 'Hello World']
['b', 'Hello', 'd', 'a', 'g', 'Hello World']
['b', 'Hello', 'd', 'a', 'g', 'Hello World', 'e', 'f']
['b', 'Hello', 'd', 'a', 'g', 'Hello World', 'e']
['b', 'Hello', 'd', 'a', 'g', 'e']
['Hello', 'a', 'b', 'd', 'e', 'g']
['g', 'e', 'd', 'b', 'a', 'Hello']

练习
现在有 a = [1,2,3,4,5,6] 用多种方式实现列表的反转([6,5,4,3,2,1]) 并写出推导过程

#第一种,利用切片和步长的方式实现
a =  [1,2,3,4,5,6] 
b = a[::-1]
print(b)

#第二种,直接利用reversed
a =  [1,2,3,4,5,6]
b = list(reversed(a))
print(b)

#第三种,使用sort和reverse
a =  [1,2,3,4,5,6]
a.sort(reverse=True)
print(a)


#第四种,使用for循环实现
a =  [1,2,3,4,5,6]
result=[]
for i in range(6):
    result.append(a.pop())
print(result)

有两个列表 lst1 = [11, 22, 33] lst2 = [22, 33, 44]获取内容相同的元素

lst1 = [11, 22, 33]
lst2 = [22, 33, 44]
for i in lst1:
    if i in lst2:
        print(f'\033[34;1m{i}是lst1和lst2的共同元素\033[0m')

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

#因为最终的结果是让用户怎么也猜不对,所以选择让电脑的随机数不在用户输入的那个范围内。
import random
for i in range(1,10):
    complayer = random.randint(11,100)
    player=int(input("请输入1-10的数字: "))
    if player<0 or player>10:
        print("输入有误")
        break

    if  player==complayer:
        print(f"恭喜你,猜对了,电脑输入的也是{complayer},一共猜了{i}次")
        break
    else:
       i += 1

现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中

#先将八位老师编号,让后定义三个空列表作为三个教室,在定义一个总的列表存储这三个教室。
import  random
a=[1,2,3,4,5,6,7,8]
list_1=[]
list_2=[]
list_3=[]
all_list=[list_1,list_2,list_3]
for i in a:
 random.choice(all_list).append(i)
print(list_1)
print(list_2)
print(list_3)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值