python基础知识3——列表和元组

python基础知识学习笔记之常用数据类型操作

1、列表

  • 1.1、列表的概念和定义
    • 概念:列表是有序可变的元素集合。

    • 定义:

      • 方式1:[ 元素1, 元素2…]
      names = ["zhangsan", "lisi", "wangwu"]
      print(names, type(names))# 列表可以嵌套
      names = ["zhangsan", "lisi", "wangwu", ["a", "b", "c"]]
      print(names, type(names))
      
      • 方式2:

      列表生成式:

      nums = range(99)
      print(nums, type(nums))nums = range(1, 99, 2)
      print(nums, type(nums))
      

      列表推导式:
      语法:[表达式 for 变量 in 列表][表达式 for 变量 in 列表 if 条件]

      nums = [1, 2, 3, 4, 5]
      resultlist = [i**2 for i in nums]
      print(resultlist)resultlist = [i**2 for i in nums if i % 2 != 0]
      print(resultlist)
      
  • 1.2、列表增加操作
    # l.append(object): 往列表中追加一个新元素
    nums = [1, 2, 3, 4, 5]
    nums.append(6)
    print(nums)# l.insert(index, object): 往列表指定索引之前插入一个元素
    nums = [1, 2, 3, 4, 5]
    nums.insert(3, 7)
    print(nums)# l.extend(iterable): 往列表中扩展另外一个可迭代序列
    nums = [1, 2, 3, 4, 5]
    nums2 = ['a', 'b', 'c', 'd']
    nums.extend(nums2)
    print(nums)# 加法运算
    nums = [1, 2, 3]
    nums2 = ['a', 'b']
    print(nums + nums2)# 乘法运算
    nums = [1, 2]
    print(nums * 3)
    
  • 1.3、列表删除操作
    # del语句: 删除一个指定的元素(对象)
    nums = [1, 2, 3, 4, 5]
    del nums[1]
    print(nums)# l.pop(index=-1): 移除并返回列表中指定索引对应的元素
    nums = [1, 2, 3, 4, 5]
    nums.pop(3)
    print(nums)# l.remove(object): 移除列表中指定的元素。如果存在多个元素,则只会删除最左边的一个
    nums = [1, "abc", 2, 3, "abc", 4]
    nums.remove("abc")
    print(nums)
    
  • 1.3、列表修改操作
    nums = [1, 2, 3, 4, 5]
    nums[3] = 7
    print(nums)
    
  • 1.4、列表查找操作
    # index(value, start=None, stop=None): 获取元素索引。如果有多个相同的值,则返回最左边元素的索引
    nums = [1, 2, 3, 4, 5]
    idx = nums.index(4)
    print(idx)# count(): 获取指定元素的个数
    nums = [1, 4, 2, 5, 3, 4, 5]
    c = nums.count(4)
    print(c)# items[start:end:step]: 获取多个元素
    nums = [1, 4, 2, 5, 3, 4, 5]
    pic = nums[2:4:1]
    print(pic)# 反转列表
    pic = nums[::-1]
    print(pic)
    
  • 1.5、列表遍历操作
    # 根据元素进行遍历
    values = ['a', 'b', 'c', 'd']
    for v in values:print(v)# 根据索引遍历
    values = ['a', 'b', 'c', 'D', 'e']
    for i in range(len(values)):print(values[i])# 通过枚举对象遍历
    values = ['a', 'b', 'c', 'D', 'e']
    for i, v in list(enumerate(values)):print(i, v)# 通过迭代器进行遍历
    values = ['a', 'b', 'c', 'D', 'e']
    it = iter(values)
    for v in it:print(v)
    
  • 1.6、列表的判定和比较
    # 判定: value in list 和 value not in list
    values = ['a', 'b', 'c', 'D', 'e']
    print("a" in values)# 比较
    print([1, 2, 3] > [2, 3])
    print([1, 2, 3] < [2, 3])
    
  • 1.7、列表的排序
    # 1.使用内建函数 sorted(itrearble, key=None, reverse=False)
    values = ['2', '3', '1', '4', '3']
    print(sorted(values))
    print(sorted(values, reverse=True))values = [("sz", 18), ("sz3", 16), ("sz1", 17), ("sz2", 15)]
    def getKey(x):return x[1]
    print(sorted(values, key=getKey, reverse=True))# 2.使用 list.sort(key=None, reverse=False)
    values = ['2', '3', '1', '4', '3']
    print(values.sort(reverse=True), values)
    
  • 1.8、列表的乱序和反转
    # 乱序
    import random
    values = ['2', '3', '1', '4', '3']
    print(random.shuffle(values), values)# 反转
    # 1. l.reverse() 
    values = ['2', '3', '1', '4', '3']
    print(values.reverse(), values)# 2.切片反转
    values = ['2', '3', '1', '4', '3']
    print(values[::-1])
    

2、元组

  • 2.1、元组的概念
    元组是有序不可变的元素集合。和列表的区别是,元组元素不能修改。
  • 2.2、元组的定义
    # 1.一个元素的写法
    t = (123,)
    print(t, type(t))# 2.多个元素的写法
    t = (1, 2, "a", [1, 2, 3])
    print(t, type(t))# 3.多个对象,以逗号隔开,默认为元组
    t = 1, 2, "abc", [1, 2]
    print(t, type(t))# 4.列表转换为元组
    l = [1, 2, 3, 4]
    t = tuple(l)
    print(t, type(t))# 5.元组嵌套
    t = (1, 2, 3, (4, 5))
    print(t, type(t))
    
  • 2.3、元组的查询
    t = (1, 2, 3, 4, 5)
    print(t[0], t[1], t[-1])
    print(t[0:3])
    print(t[::-1])
    
  • 2.4、元组的获取
    # 统计元组中指定元素的个数
    t = (1, 2, 3, 1, 5)
    print(t.count(1))# 获取元组中指定元素的索引
    t = (1, 2, 3, 1, 5)
    print(t.index(3))# 获取元组中元素的个数
    t = (1, 2, 3, 1, 5)
    print(len(t))# 返回元组中元素的最大值
    t = (1, 2, 3, 1, 5)
    print(max(t))# 返回元组中元素的最小值
    t = (1, 2, 3, 1, 5)
    print(min(t))
    
  • 2.5、元组的判定和比较
    # 判定
    t = (1, 2, 3, 1, 5)
    print(7 in t)
    print(2 in t)# 比较
    # 针对每个元素,从左到右一一比较
    t1 = (1, 2)
    t2 = (2, 3)
    print(t1 > t2)
    print(t1 < t2)
    
  • 2.6、元组的拼接和拆包
    # 拼接
    print((1, 2) + (3, 4))
    print((1, 2) * 3)# 拆包
    a, b = (1, 2)
    print(a, b)# 变量交换
    a = 1
    b = 2
    a, b = (b, a)
    print(a, b)
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/779103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络爬虫框架Scrapy的入门使用

Scrapy的入门使用 Scrapy概述引擎&#xff08;Engine&#xff09;调度器&#xff08;Scheduler&#xff09;下载器&#xff08;Downloader&#xff09;SpiderItem Pipeline 基本使用安装scrapy创建项目定义Item数据模型对象创建爬虫(Spider)管道pipeline来保存数据启动爬虫 其他…

消费盲返:新型返利模式引领购物新潮流

消费盲返&#xff0c;一种引领潮流的新型消费返利模式&#xff0c;其核心在于&#xff1a;消费者在平台选购商品后&#xff0c;不仅能享受优惠价格&#xff0c;更有机会获得后续订单的部分利润作为额外奖励。这种创新的返利机制&#xff0c;既提升了消费者的购物体验&#xff0…

AUTOSAR关于内存栈的分层及描述

首先关于关于内存栈的分层&#xff1a;如下图所示&#xff0c;Nvm靠近RTE的&#xff1b;MemIf居中&#xff0c;EA和FEE被包含其中。 其次关于这三层的缩写&#xff1a;可以看到EEPROM的模拟和EEPROM的抽象层。 我们可以看到 大概的数据流&#xff1a; 和大致的结构分层作用&am…

使用argocd作为cd流程

一、前言 讲述关于argocd在cicd流程中的使用&#xff0c;ci这里使用gitlabjenkins流水线的方式&#xff0c;jenkins用于拉代码打包、构建镜像、变更yaml文件的镜像、推送变更的yaml文件到gitlab的gitops仓库中&#xff0c;最后再有argocd实现cd流程&#xff0c; 二、使用 关于…

​网络安全相关证书资料​——OSCP、CISP-PTE

网络安全相关证书有哪些&#xff1f;——就实战型看&#xff0c;OSCP、CISP-PTE &#xff08;国家注册渗透测试工程师&#xff09;最好。 网络安全相关证书有哪些&#xff1f; 网络安全相关证书有哪些呢&#xff1f;了解一下&#xff01; 1. CISP &#xff08;国家注册信息安全…

全国产数据采集卡定制,24位八通道以太网数据采集卡 labview 100K采样

XM702是一款以太网型高速数据采集卡&#xff0c;具有8通 道真差分输入&#xff0c;24位分辨率&#xff0c;单通道最高采样率100ksps八通 道同步共计800ksps、精密前置增益放大、集成IEPE/ICP硬件 支持的特点。本产品采用了多个高精度24位ADC单元及配合本 公司多年积累开发的前置…

WinSock Api connect超时函数实现方法

当调用listen(serverSocket, 1)时&#xff0c;1表示服务器同时处理的连接请求的最大数量。在这种情况下&#xff0c;服务器只能处理一个客户端连接请求。如果客户端尝试连接时&#xff0c;服务器正在处理一个连接请求&#xff0c;客户端将被阻塞&#xff08;即死等&#xff09;…

性能小钢炮,美学艺术品!佰维PD2000移动固态硬盘新品即将上市

开春时节&#xff0c;想必大家已经准备踏上春游旅程。每到一个景点&#xff0c;或许总想记录精彩的瞬间&#xff0c;留存优美的景色。但由于手机存储容量有限&#xff0c;很多时候我们拍不了多少照片&#xff0c;手机就开始提示存储空间不足。而iCloud昂贵的云存储价格也让人望…

linux生产桌面程序并实现开机自启动

1.生产桌面程序 编写桌面文件脚本 创建一个桌面脚本文件&#xff0c;后缀名为desktop&#xff0c;我的为my.desktop,文件内容如下 [Desktop Entry] Version1.0 Namemy Comment this app use for ljs Exec/home/ljs/myTestApp Icon/home/ljs/icon.png Terminalfal…

2023年后端面试总结

备注&#xff1a;这篇文章是我在2023年年初在自己的网站上写的&#xff0c;最近在迁移技术文章&#xff0c;我感觉这个也是和咱程序员相关&#xff0c;所以今天就决定把它迁移过来。 .......................................................................分割线..........…

机器学习概论—增强学习

机器学习概论—增强学习 强化学习(Reinforcement Learning, RL)或者说是增强学习,是机器学习的一个领域,旨在使智能体通过与环境的交互学习如何做出决策,它是关于在特定情况下采取适当的行动来最大化奖励。它被各种软件和机器用来寻找在特定情况下应采取的最佳行为或路径…

【单调栈】力扣84.柱状图中最大的矩形

上篇文章我们介绍了使用 无重复值 单调栈代码解决 含有重复值 的问题&#xff0c;在文章的最后&#xff0c;留下了一道考察相同思想的题目&#xff0c;今天我们来看看如何套路解决该题。 &#xff08;还没看过前几篇介绍的小伙伴赶快关注&#xff0c;在 「单调栈」 集合里查看…

docker logs 查找日志常用命令

docker logs 是什么 docker logs 是 Docker 命令行工具提供的一个命令&#xff0c;用于查看容器的日志输出。它可以显示容器在运行过程中生成的标准输出&#xff08;stdout&#xff09;和标准错误输出&#xff08;stderr&#xff09;&#xff0c;帮助用户诊断容器的行为和排查…

Python的面向对象、封装、继承、多态相关的定义,用法,意义

面向对象编程&#xff08;OOP&#xff09;是一种编程范式&#xff0c;它使用对象的概念来模拟现实世界的实体&#xff0c;并通过类&#xff08;Class&#xff09;来创建这些实体的蓝图。OOP的核心概念包括封装、继承和多态。 Python中的面向对象编程 在Python中&#xff0c;一…

2024年妈妈杯数学建模思路A题思路分享

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

课堂练习:环境体验——Linux 文件操作命令

任务描述 第二个任务就是了解Linxu的文件查看命令&#xff0c;文件编辑基本命令。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.文件查看命令。 2.文件编辑基本命令。 文件查看命令 我们要查看一些文本文件的内容时&#xff0c;要使用文本编辑器来查看…

使用OpenSSL指令测试椭圆曲线签名算法ECDSA

文章目录 小结问题及解决获取secp256r1的公钥和私钥DER格式使用OpenSSL及secp256r1算法获得签名使用OpenSSL及secp256r1算法对签名进行认证 参考 小结 本文记录了使用OpenSSL指令测试椭圆曲线签名算法ECDSA&#xff0c;进行了以下操作&#xff1a;生成椭圆曲线secp256r1 公私密…

shell find, while 使用,找出文件并批量修改文件名

linux find 命令和 while 命令联合使用案例_ITPUB博客 #!/bin/bash int1 while(( $int<5 )) doecho $intlet "int" done find 和 while 联合使用 echo find ./ -iname "\*.jpg" | while read f do#do somethingecho $f done 修改文件名 linux 找出…

基于unbantu的nginx的配置

目录 前言: 1.安装nginx并进行测试 1.1使用nginx -v 命令查看版本 1.2开启服务 查看端口 1.3测试 2.nginx的静态资源访问配置 2.1创建静态资源存放的目录 2.2写入目录中测试文件对应的内容 2.3修改配置文件 2.4 测试 3.虚拟主机配置 3.1创建目录 3.2写入测试…

任务记录.

播放器端的解码同步问题 miracast的投屏问题&#xff0c;进行修改的问题。 播放器ffplay命令没有声音的修改问题。 任务&#xff1a;如何将断开连接后在连接发送的数据&#xff0c;两秒后再去显示。 猜测&#xff1a; 一直在监听。断开后要求2秒后的数据再显示。那么也就是认为…