当前位置: 首页 > news >正文

[Python入门学习记录(小甲鱼)]第5章 列表 元组 字符串

第5章 列表 元组 字符串

5.1 列表

一个类似数组的东西

5.1.1 创建列表

一个中括号[ ] 把数据包起来就是创建了

number = [1,2,3,4,5]
print(type(number))
#返回 list 类型
for each in number:print(each)
#输出 1 2 3 4 5#列表里不要求都是一个数据类型
mix = [213,"sada",3.14,[1,2,3]]
#也可以是空的
empty = []

5.1.2 向列表添加元素

  • 使用 append()方法 添加单个元素,末尾添加
  • 使用 extend()方法 添加多个元素,实际是扩充一个列表进去,末尾添加
  • 使用 insert()方法 向列表插入元素
number = [1,2,3,4,5]
number.append(6)
print(number) # 输出[1,2,3,4,5,6]
number.extend([8,9])
print(number) # 输出[1,2,3,4,5,6,8,9]
number.insert(0,0)
print(number) # 输出[0,1,2,3,4,5,6,8,9]
number.insert(7,7)
print(number) # 输出[0,1,2,3,4,5,6,7,8,9]
number.insert(-1,8.5) # 正数表示和开头的相对位置,负数表示和结尾的相对位置
print(number) # 输出[0,1,2,3,4,5,6,7,8,8.5,9]

5.1.3 从列表获取元素

  • 通过索引值直接获取,num[0] 是第一个元素 num[-1]是最后一个元素
  • 交换元素位置,写法 num[0],num[3] = num[3],num[0] ,交换第一个元素和第四个元素位置
  • 使用 random.choice() 随机获取一个元素
import random
num = [1,2,3,4,5]
print(num[0],num[-1]) # 输出 1 5
num[0],num[3] = num[3],num[0]
print(num[0],num[3]) # 输出 4 1
print(random.choice(num)) # 随机输出

5.1.4 从列表删除元素

  • 使用remove()方法删除一个指定的元素
  • 使用pop()方法根据索引值取出一个元素并删除
  • 使用del语句删除元素或者直接删除变量
eggs = ["鸡蛋","鸭蛋","铁蛋","鹅蛋"]
eggs.remove('鸡蛋')
print(eggs) # 输出 ["鸭蛋","铁蛋","鹅蛋"]
print(eggs.pop(0)) # 输出 鸭蛋  没输入参数的话 默认取出最后一个元素
print(eggs) # 输出 ["铁蛋","鹅蛋"]
del eggs[0]
print(eggs) # 输出 ["鹅蛋"]
del eggs
print(eggs) # 已经删除了列表 会报错

5.1.5 列表切片

切片语法,从列表里取出一部分元素,创建一个新的拷贝并返回,不影响原列表

list1 = ['a','b','c','d','e']
print(list1[:2]) # 输出['a','b'] 起始位置不填 默认0
print(list1[1:]) # 输出['b','c','d','e'] 结束位置不填 默认到最后
print(list1[:]) # 输出['a','b','c','d','e'] 都不填 默认全打印

5.1.6 切片进阶玩法

增加一个步长,如果对切片后的列表操作,比如del或者赋值 就是改变原列表了

list1 = [1,2,3,4,5,6,7,8,9]
print(list1[0:9:2]) # 输出 [1,3,5,7,9]
print(list1[::2]) # 输出 [1,3,5,7,9]
print(list1[::-1]) # 输出 [9,8,7,6,5,4,3,2,1]  0开始  -1 -2 -3 -4 -5 ...
del list1[0:2] 
print(list1) # 输出 [3,4,5,6,7,8,9]
list1[0:2] = [1,2] 
print(list1) # 输出 [1,2,5,6,7,8,9]

5.1.7 列表使用常见操作符

list1 = [123]
list2 = [234]
print(list1 > list2) # 输出 false 一个一个元素比较  有结果直接返回
print(list1 + list2) # 输出 [123,234] 和 extend 一个效果
print(list1 * 3) # 输出 [123,123,123]
print(123 in list1) # true 判断元素是否存在列表中
print(234 not in list1) # true#去掉列表中的重复元素
old_list = ['1','2','2','3','4']
new_list = []
for mstr in old_list :if mstr not in new_list :new_list.append(mstr)
print(new_list) # 输出 ['1','2','3','4']

5.1.8 列表常用方法

print(dir(list)) # 输出list的所有方法和属性list = [1,1,2,3,5,8,13,21]
print(list.count(1)) # 输出2  count输出元素在列表出现次数
print(list.index(1)) # 输出0  index输出元素在列表第一次出现的索引
print(list.index(1,1,8)) # 输出1  index 可以设定范围
list.reverse()
print(list) # 输出 [21,13,8,5,3,2,1,1] 翻转列表
list.sort()
print(list) # 输出 [1,1,2,3,5,8,13,21] 排序用的 默认从小到大
list.sort(reverse = True)
print(list) # 输出 [21,13,8,5,3,2,1,1] 排序 从大到小  sort(func,key,reverse)

5.2 元组

元组就是只读的列表,无法修改,只能读取

5.2.1 创建和访问元组

创建列表用中括号[ ],元组用小括号( )

tuple = (1,2,3,4,5,6) # 创建时 单个元素要带, (520,)这种 或者,不要括号也可以 520,
print(type(tuple)) # 输出 tuple
print(tuple[0]) # 输出 1
print(tuple[3:]) # 输出 (4,5,6)
print(tuple[:5]) # 输出 (1,2,3,4,5)

5.2.2 更新和删除元组

元组元素无法修改,只能通过切片和其他操作符的操作间接实现

tuple = ('小鸡','小花','小猪','小狗')
tuple = (tuple[0],"小猫") + tuple[2:] # 建立一个新元组再拼接切片
print(tuple) #输出 ('小鸡','小猫','小猪','小狗')  看似都是tuple 但id值不同#删除操作也能用切片拼接实现 del是删除整个元组 一般不用 会自动垃圾回收  其他操作符 也都和列表一样使用

5.3 字符串

和C语言的差不多,但是’ '和" "都可以使用,注意必须成对使用,字符串也不能修改元素,要修改就得切片拼接,其他操作符也和列表 元组一样用

str2 = "一只穿云箭"
str2 = str2[0] + "支" + str2[2:]
print(str2) # 输出 一支穿云箭

5.3.1 各种BIF

太多了 记不住,用得到再查吧,跳过,注意涉及到字符串修改的 都不修改原字符串 只返回一个新字符串

5.3.2 格式化

#字符串 format
str2 = "{0} am {1}".format("i","lin") # 位置参数
print(str2) # 输出 i am lin  
str2 = "{a} am {b}".format(a="i",b="lin") # 关键字参数
print(str2) # 输出 i am linstr2 = "{0},{a} am {1} {b}".format("a","b",a="i",b="lin") # 混合用 format里 位置参数一定要先标注完
print(str2) # 输出 a,i am b linstr2 = "{0}:{1:.2f}".format("圆周率",3.14159) #  :后 .2f保留两位小数 浮点
print(str2) # 输出 圆周率:3.14 # % 格式化 类型和c语言一样
a = '%c' % 97
print(a) //输出 a ascii码 格式化成字符
str1 = "i am"
str2 = "lin"
print('%s %s' % (str1,str2)) # 输出 i am lin 字符串带格式拼接
#字符串拼接 简单用 + 带格式用上面这个 %  大量数据循环拼接用 字符串的join方法
sstr1 = ("i","am","lin")
str2 = ""
str2 = " ".join(str1)
print(str2) # 输出 i am lin#格式化操作符的一些辅助命令和c差不多 有个 #不一样
print('%#x' % 100) # 输出 0x64  八进制前面加 0o 十六进制前面加 0x

5.4 序列

上面这些统称为序列,这里介绍一些BIF。

  • list() 把一个迭代对象 转换成列表
  • tuple() 把一个迭代对象 转换成元组
  • str()把一个obj对象转换成字符串
  • len() 返回长度
  • max() 返回最大值,数据类型要统一
  • min()返回最小值,数据类型要统一
  • sum()返回总和,加上参数就是连参数一起求和
  • sorted()排序
  • reversed() 翻转序列 返回一个迭代对象
  • enumerate() 生成一个由迭代参数和对应元素组成的二元组 ,二元组数量按 最短长度
  • zip()返回多个参数组成的元组,二元组数量按 最短长度

相关文章:

[Python入门学习记录(小甲鱼)]第5章 列表 元组 字符串

第5章 列表 元组 字符串 5.1 列表 一个类似数组的东西 5.1.1 创建列表 一个中括号[ ] 把数据包起来就是创建了 number [1,2,3,4,5] print(type(number)) #返回 list 类型 for each in number:print(each) #输出 1 2 3 4 5#列表里不要求都是一个数据类型 mix [213,"…...

Docker 学习(四)——Dockerfile 创建镜像

Dockerfile是一个文本格式的配置文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建。有了Dockerfile,当我们需要定制自己额外的需求时,只需在D…...

Java多线程与高并发专题——为什么 Map 桶中超过 8 个才转为红黑树?

引入 JDK 1.8 的 HashMap 和 ConcurrentHashMap 都有这样一个特点:最开始的 Map 是空的,因为里面没有任何元素,往里放元素时会计算 hash 值,计算之后,第 1 个 value 会首先占用一个桶(也称为槽点&#xff…...

LeetCode hot 100—二叉树的中序遍历

题目 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入:root […...

代码随想录算法训练营第35天 | 01背包问题二维、01背包问题一维、416. 分割等和子集

一、01背包问题二维 二维数组,一维为物品,二维为背包重量 import java.util.Scanner;public class Main{public static void main(String[] args){Scanner scanner new Scanner(System.in);int n scanner.nextInt();int bag scanner.nextInt();int[…...

与中国联通技术共建:通过obdiag分析OceanBase DDL中的报错场景

中国联通软件研究院(简称联通软研院)在全面评估与广泛调研后,在 2021年底决定采用OceanBase 作为基础,自研分布式数据库产品CUDB(即China Unicom Database,中国联通数据库)。目前,该…...

IDEA 接入 Deepseek

在本篇文章中,我们将详细介绍如何在 JetBrains IDEA 中使用 Continue 插件接入 DeepSeek,让你的 AI 编程助手更智能,提高开发效率。 一、前置准备 在开始之前,请确保你已经具备以下条件: 安装了 JetBrains IDEA&…...

斗地主小游戏

<!DOCTYPE html> <html><head><meta charset="utf-8"><title>斗地主</title><style>.game-container {width: 1000px;height: 700px;margin: 0 auto;position: relative;background: #35654d;border-radius: 10px;padding…...

如何改变怂怂懦弱的气质(2)

你是否曾经因为害怕失败而逃避选择&#xff1f;是否因为不敢拒绝别人而让自己陷入困境&#xff1f;是否因为过于友善而被人轻视&#xff1f;如果你也曾为这些问题困扰&#xff0c;那么今天的博客就是为你准备的。我们将从行动、拒绝、自我认知、实力提升等多个角度&#xff0c;…...

C# OnnxRuntime部署DAMO-YOLO人头检测

目录 说明 效果 模型信息 项目 代码 下载 参考 说明 效果 模型信息 Model Properties ------------------------- --------------------------------------------------------------- Inputs ------------------------- name&#xff1a;input tensor&#xff1a;Floa…...

基于GeoTools的GIS专题图自适应边界及高宽等比例生成实践

目录 前言 一、原来的生成方案问题 1、无法自动读取数据的Bounds 2、专题图高宽比例不协调 二、专题图生成优化 1、直接读取矢量数据的Bounds 2、专题图成果抗锯齿 3、专题成果高宽比例自动调节 三、总结 前言 在当今数字化浪潮中&#xff0c;地理信息系统&#xff08;…...

各种DCC软件使用Datasmith导入UE教程

3Dmax: 先安装插件 https://www.unrealengine.com/zh-CN/datasmith/plugins 左上角导出即可 虚幻中勾选3个插件,重启引擎 左上角选择文件导入即可 Blender导入Datasmith进UE 需要两个插件, 文章最下方链接进去下载安装即可 一样的,直接导出,然后UE导入即可 C4D 直接保存成…...

尚硅谷爬虫note15

一、当当网 1. 保存数据 数据交给pipelines保存 items中的类名&#xff1a; DemoNddwItem class DemoNddwItem(scrapy.Item): 变量名 类名&#xff08;&#xff09; book DemoNddwItem(src src, name name, price price)导入&#xff1a; from 项目名.items import 类…...

云原生系列之本地k8s环境搭建

前置条件 Windows 11 家庭中文版&#xff0c;版本号 23H2 云原生环境搭建 操作系统启用wsl(windows subsystem for linux) 开启wsl功能&#xff0c;如下图 安装并开启github加速器 FastGithub 2.1 下载地址&#xff1a;点击下载 2.2 解压安装文件fastgithub_win-x64.zip 2…...

关于tomcat使用中浏览器打开index.jsp后中文显示不正常是乱码,但英文正常的问题

如果是jsp文件就在首行加 “<% page language"java" contentType"text/html; charsetUTF-8" pageEncoding"UTF-8" %>” 如果是html文件 在head标签加入&#xff1a; <meta charset"UTF-8"> 以jsp为例子&#xff0c;我们…...

mysql foreign_key_checks

‌foreign_key_checks‌是一个用于设置是否在DML/DDL操作中检查外键约束的系统变量。该变量默认启用&#xff0c;通常在正常操作期间启用以强制执行参照完整性。 功能描述 foreign_key_checks用于控制是否在DML&#xff08;数据操纵语言&#xff09;和DDL&#xff08;数据定义…...

开发环境搭建-06.后端环境搭建-前后端联调-Nginx反向代理和负载均衡概念

一.前后端联调 我们首先来思考一个问题 前端的请求地址是&#xff1a;http://localhost/api/employee/login 后端的接口地址是&#xff1a;http://localhost:8080/admin/employee/login 明明请求地址和接口地址不同&#xff0c;那么前端是如何请求到后端接口所响应回来的数…...

REST API前端请求和后端接收

1、get请求&#xff0c;带"?" http://localhost:8080/api/aop/getResult?param123 GetMapping("getResult")public ResponseEntity<String> getResult(RequestParam("param") String param){return new ResponseEntity<>("12…...

道可云人工智能每日资讯|《奇遇三星堆》VR沉浸探索展(淮安站)开展

道可云元宇宙每日简报&#xff08;2025年3月5日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 《奇遇三星堆》VR沉浸探索展&#xff08;淮安站&#xff09;开展 近日&#xff0c;《奇遇三星堆》VR沉浸探索展&#xff08;淮安站&#xff09;开展。该展将三星堆文…...

服务器数据恢复—raid5阵列中硬盘掉线导致上层应用不可用的数据恢复案例

服务器数据恢复环境&故障&#xff1a; 某公司一台服务器&#xff0c;服务器上有一组由8块硬盘组建的raid5磁盘阵列。 磁盘阵列中2块硬盘的指示灯显示异常&#xff0c;其他硬盘指示灯显示正常。上层应用不可用。 服务器数据恢复过程&#xff1a; 1、将服务器中所有硬盘编号…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

20个超级好用的 CSS 动画库

分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码&#xff0c;而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库&#xff0c;可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画&#xff0c;可以包含在你的网页或应用项目中。 3.An…...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时&#xff0c;需要使用外部低速晶振...

spring Security对RBAC及其ABAC的支持使用

RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型&#xff0c;它将权限分配给角色&#xff0c;再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...