首页 > 编程语言 >python之列表

python之列表

时间:2023-05-18 12:05:32浏览次数:45  
标签:hero 绿巨人 python 列表 黑寡妇 print 蜘蛛侠


python条件控制语句

python之列表

序列:

一种数据结构 指计算机中数据的存储方式 有顺序 通过索引加以操作

  • 序列的分类:
    可变的序列 列表
    不可变的序列 字符串

列表

列表的概念:

是python中的一种对象,可以保存多个有序的数据。

  • 注意:索引是从零开始的,依次向下类推,并且每一个元素之间要用逗号分隔开
list = [1,2,3,4,5]# 创建一个列表,通过[]来进行创建
print(list,type(list))
list = [1,'hello',None,[1,2,3,4,5],True]# 列表可以保存任意的对象
print(list)
list = [1,2,3,4,5]
print(list,type(list))
print(list[1])#我们可以通过索引(index)来获取列表中的元素
# print(list[5])# 超过索引的最大值,会进行报错
print(len(list))# 通过len()函数获取列表的长度或者是元素的个数,获取的列表长度其实是列表的最大索引值加1
print(list[-4])# 索引值可以是负数,-1表示的是最后一个,-2表示的是倒数第二个,以此类推。
[1, 2, 3, 4, 5] <class 'list'>
[1, 'hello', None, [1, 2, 3, 4, 5], True]
[1, 2, 3, 4, 5] <class 'list'>
2
5
2

切片

指从现有列表中获取一个子列表
语法:列表[开始:结束:步长]

hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
print(hero)
print(hero[0:2])# 通过切片来获取指定的元素时,会包含起始位置的元素,不会包含结束位置的元素
print(hero)# 切片获取列表时,只会返回一个新的列表,不会对原来的列表产生影响
# 如果省略结束位置会从当前的开始位置一直截取到最后
print(hero[1:])
# 如果省略开始位置则会从第一个元素截取到结束位置的元素,但是不包括结束位置的元素
print(hero[:3])
# 如果省略开始位置和结束位置,则会从第一个元素截取到最后一个元素
print(hero[:])
# 步长表示每次获取元素的间隔,默认值为1,可以省略
print(hero[0:5:1])
print(hero[0:5])
print(hero[::2])
print(hero[::-2])# 步长可以为负数,表示的是从后向前截取
# print(hero[::0])# 步长不可以为0
['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
['钢铁侠', '绿巨人']
['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
['绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
['钢铁侠', '绿巨人', '蜘蛛侠']
['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇']
['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇']
['钢铁侠', '蜘蛛侠', '黑寡妇']
['蚁人', '美国队长', '绿巨人']

通用方法

+

+可以将两个列表拼接成一个列表

list= [1,2,3,4] + [5,6,7,8]
print(list)
[1, 2, 3, 4, 5, 6, 7, 8]
  • *
  • 可以和整数相乘,就可以把列表重复指定的次数
# list = [1,2,3] * [4,5,6,7]列表之间不能够相乘
list = [1,2,3] * 2
print(list)
[1, 2, 3, 1, 2, 3]
in 和not in

in用来检测指定的元素是否在列表中,如果在就返回True,不在则返回False
not in用来检测指定的元素是否不在列表中,如果不在就返回True,如果在就返回False

hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
print('绿巨人' in hero)
print('录' not in hero)
True
True
min()和max()

min()获取列表中的最小值
max()获取列表中的最大值

list = [100,78,5,99]
print(max(list),min(list))
100 5
两个方法

y. xxx()
list.index()列表对象 获取指定元素在列表中的位置
index()第一个参数表示要查找的元素第二个参数表示查找的起始位置,第三个表示要查找的结束位置

hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
print(hero.index('蜘蛛侠',1,4))
2

list.count()统计指定元素在列表中的次数

hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
print(hero.count('煎饼侠'))
0

修改列表

修改列表的几种方法:

  • 通过索引值进行修改
hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
print('修改前',hero)
hero[0] = '雷神'# 将钢铁侠替换成雷神
print('修改后',hero)
修改前 ['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
修改后 ['雷神', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
  • 通过del 来进行修改,用来删除元素
    del 列表名[索引值]
hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
print('修改前',hero)
del hero[2]
print('修改后',hero)
修改前 ['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
修改后 ['钢铁侠', '绿巨人', '美国队长', '黑寡妇', '蚁人']
  • 通过切片来进行修改,但是传递的必须是一个序列
  • 注意:当设置了步长的时候,序列中的元素的个数必须和切片中元素的个数保持一致
hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
print('修改前',hero)
hero[0:3] = 'abcd'
print('修改后',hero)# 将第一个到第三个元素替换成abcd
hero[0:2] = ['黑豹','雷神','灭霸']
print('修改后',hero)
hero[0:0] = ['雷神']# 表示向索引值为0的地方插入元素
print('修改后',hero)
# 可以通过切片来删除元素
hero[1:3] = []
print('修改后',hero)
修改前 ['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
修改后 ['a', 'b', 'c', 'd', '美国队长', '黑寡妇', '蚁人']
修改后 ['黑豹', '雷神', '灭霸', 'c', 'd', '美国队长', '黑寡妇', '蚁人']
修改后 ['雷神', '黑豹', '雷神', '灭霸', 'c', 'd', '美国队长', '黑寡妇', '蚁人']
修改后 ['雷神', '灭霸', 'c', 'd', '美国队长', '黑寡妇', '蚁人']

列表方法

yyy.xxx()为方法
常用的方法有:
yyy.append(参数1)向列表的最后添加一个元素,参数为要向列表中添加的值
yyy.insert(参数1,参数2)向列表指定的位置添加一个元素,参数1是要插入元素的位置,参数二是要插入的元素
yyy.extend()使用新的序列来扩展当前的序列
yyy.pop()根据索引删除并返回指定的元素,如果没加索引值则会删除第一个元素
yyy.reverse()反转列表
yyy.sort()用来对列表中的元素进行升序排列
yyy.clear()清空列表

# 列表方法
hero = ['钢铁侠','绿巨人','蜘蛛侠']
print('修改前',hero)
hero[2] = 'b'
hero.append('黑寡妇')
print('修改后',hero)
hero.insert(2,'黑寡妇')
print('修改后',hero)
# hero.extend(123)
hero.extend(['黑寡妇','蚁人'])
print('修改后',hero)
# hero.extend(['黑寡妇','蚁人']) 相当于hero += ['黑寡妇','蚁人']
print('修改后',hero)
hero.clear()
print('修改后',hero)
hero = ['钢铁侠', '绿巨人', '蜘蛛侠', '美国队长', '黑寡妇', '蚁人']
hero.pop(2)
print('修改后',hero)
reslut= hero.pop()
print(reslut)
hero.remove('绿巨人')
print('修改后',hero)
# reslut= hero.remove('绿巨人')
print(reslut)
# reverse()反转列表
hero.reverse()
print(hero)

遍历列表

遍历列表指的就是将列表中的元素取出来

while 条件表达式:
	代码块
# while循环遍历列表
hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
i = 0
while i < len(hero):
    print(hero[i])
    i += 1
钢铁侠
绿巨人
蜘蛛侠
美国队长
黑寡妇
蚁人
for 变量 in 序列:
  代码块

range(5) -->range(0,5) -->range(0,5,1)结果是[1,2,3,4]

hero = ['钢铁侠','绿巨人','蜘蛛侠','美国队长','黑寡妇','蚁人']
h = 0
# 用for循环来遍历列表
for h in hero:
    print(h)
钢铁侠
绿巨人
蜘蛛侠
美国队长
黑寡妇
蚁人

这说明h对应了列表中的每一个元素,for循环的代码块,序列中有几个元素就要执行几次,每执行一次就会让序列中的元素赋值给变量。
range()有三个参数
开始:默认是0可以省略 range(5) range(0,5)
结束:不包含结束 range(0,5) 结果是[0,1,2,3,4]
步长:默认是1 range(0,5)等价于range(0,5,1)等价于range(5),结果是[0,1,2,3,4]

lst = [1,2,3,4,5,6,7,8,9]
# 获取列表中的奇数
for i in range(0,9,2):
	print(lst[i])

案例一:有两个列表l1 =[11,22,33] l2 =[22,33,44]获取内容相同的元素列表

# 创建两个列表
l1 = [11, 22, 33]
l2 = [22, 33, 44]
for i in l1:
    # print(i)
    for j in l2:
        # 用嵌套循环遍历两个列表
        # print(j)
        if i == j:
            # 如果两个列表中的值相等,则获取并且打印列表中的值
            print(i)
22
33

案例二:不用函数进行反转列表并写出推导过程

# 创建一个列表并赋值
l3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 方案一:通过reverse()方法进行反转列表
l3.reverse()  # [9, 8, 7, 6, 5, 4, 3, 2, 1]
print(l3)
# 方案二:通过切片进行反转列表
l3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l3[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1]
# 切片:列表[开始位置:结束位置:步长]
# 如若开始位置不写
l3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l3[:8:1])  # [1, 2, 3, 4, 5, 6, 7, 8]
# 由此可见如果开始位置不写,则会从第一个元素截取到结束位置的元素,但是不包括结束位置的元素
# 如若结束位置省略
l3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l3[1::1])  # [2, 3, 4, 5, 6, 7, 8, 9]
# 由此可见如果结束位置省略,则会从当前的位置的元素一直截取到最后一个元素
# 如果开始位置和结束位置都省略呢
l3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l3[::1])  # [1, 2, 3, 4, 5, 6, 7, 8, 9],
# 由此可见如果开始位置和结束位置都省略,则会从第一个位置的元素一直截取到最后一个位置的元素
# 如若开始位置和结束位置省略并且步长为负数呢?
l3 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(l3[::-1])  # [9, 8, 7, 6, 5, 4, 3, 2, 1]
# 由此可见如果开始位置和结束位置都省略并且步长为-1的时候会对列表进行反转
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
[1, 2, 3, 4, 5, 6, 7, 8]
[2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[9, 8, 7, 6, 5, 4, 3, 2, 1]

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

import random
lst = []# 保存用户猜过的数字
for i in range(9):
    number = int(input('请输入一个数字:'))
    lst.append(number)# 将用户猜过的数字添加到列表中
    print('对不起,没有猜对')
while True:
    number_x =random.randint(1,10)# 1 <= number_x <=10
    # 判断
    if number_x in lst:
        continue# 跳出循环
    else:
        break# 退出循环
print('正确号码',number_x)
请输入一个数字:1
对不起,没有猜对
请输入一个数字:2
对不起,没有猜对
请输入一个数字:3
对不起,没有猜对
请输入一个数字:4
对不起,没有猜对
请输入一个数字:5
对不起,没有猜对
请输入一个数字:6
对不起,没有猜对
请输入一个数字:7
对不起,没有猜对
请输入一个数字:8
对不起,没有猜对
请输入一个数字:9
对不起,没有猜对
正确号码 10

下节:Python之元组 字典 集合


标签:hero,绿巨人,python,列表,黑寡妇,print,蜘蛛侠
From: https://blog.51cto.com/u_15016660/6296641

相关文章

  • Python之计算机要点
    Python之计算机要点:1.计算机的概念:计算机俗称电脑,是现代用于高速计算的机器特点:数值计算存储记忆功能逻辑计算总结:能够按照程序运行、自动、高速处理数据的现代化智能电子设备计算机的组成:硬件+软件软件:就是一系列按照特定顺序组织的计算机数据和特定指令的集合2.计算机语言:......
  • python之字符串和运算符
    python基本数据类型python之字符串和运算符字符串格式化字符串print(6+6)print('6'+'6')print('jerr'+'y')#print(6+'6')两个不同类型的相加会报一个类型错误1266jerry拼串s='hello'print('s='+s)用+号来进行拼串s=hello传递参数s=......
  • python之条件控制语句
    python字符串和运算符python之条件控制语句if语句:语法格式:if条件表达式:代码块ifFalse:print('hello')#默认情况下,if语句只会控制紧跟其后的那条语句print('hello')ifFalse: #代码块:是一种代码分组的机制,是一个整体,要么就都执行,要么就都不执行,代码块以缩进开始,直到代码恢复......
  • < Python全景系列-4 > 史上最全文件类型读写库大盘点!什么?还包括音频、视频?
    欢迎来到我们的系列博客《Python全景系列》!在这个系列中,我们将带领你从Python的基础知识开始,一步步深入到高级话题,帮助你掌握这门强大而灵活的编程语言!本文系列第四篇,介绍史上最全PYTHON文件类型读写库大盘点!包含常用和不常用的大量文件格式!文本、音频、视频应有尽有!废话不多说!......
  • python 线程池使用
    代码应用场景:需要对数据库中的数据进行批量查询,然后将查询到的结果每条分别写入不同的文本文件中。由于数据数量较多,考虑使用线程池减少时间开销。#核心代码逻辑importpymysqlfromdbutils.pooled_dbimportPooledDBimportthreadingclassprocessing:def__init__(s......
  • python 性能测试之获取app fps
    一、功能描述该脚本主要是获取视频/语音通话、语音房、看视频等app的fps 二、代码实现importos,csvimporttimeimportnumpyasnpfrommatplotlibimportpyplotaspltfromsubprocessimportPopen,PIPEfromcheck_packageimportcheck_packageimportmath......
  • python基础学习-发送邮件
    importsmtplibfromemail.headerimportHeaderfromemail.mime.multipartimportMIMEMultipartfromemail.mime.textimportMIMEText"""发送普通邮件"""#创建邮件主体对象email=MIMEMultipart()#设置发件人、收件人和主题email['From']=&#......
  • Python程序与用户交互&基本运算符
    一、用户交互1.输入input:关键字:input()-输入在python3中input关键字会等待用户的输入,用户输入任何内容,都存成字符串类型,然后赋值给等号左边的变量名在python2中存在一个raw_input功能与python3中的input功能一模一样在python2中还存在一个input功能,需要用户输入一个明......
  • web自动化测试入门篇04——selenium+python基础方法封装
      ......
  • python - 单例模式
    Python中的单例单例模式(Singletonpattern),是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。Python中实现单例的几种方法:使用模块使用函数装饰器使用类装饰器......