一,字符串相关API

  1. string.strip([chars])方法:移除字符串开头和结尾的空白字符(如空格、制表符、换行符等),它不会修改原始字符串,而是返回一个新的处理后的字符串
    chars(可选):指定要移除的字符集合(如 ‘abc’ 表示移除开头 / 结尾的 ‘a’、‘b’、‘c’)。若不指定,则默认移除所有空白字符(空格、\t、\n、\r 等)。

    line = "   Hello, World!   \n"
    stripped_line = line.strip()  # 移除开头和结尾的空白字符
    print(stripped_line)  # 输出: "Hello, World!"# 指定移除特定字符
    text = "---Hello---"
    print(text.strip('-'))  # 输出: "Hello"
    
  • 仅移除开头和结尾的字符:strip() 不会处理字符串中间的空白字符
  • 其他类似方法:
    lstrip():仅移除左侧(开头)的字符。
    rstrip():仅移除右侧(结尾)的字符。
  1. string.split(sep=None, maxsplit=-1)方法:将字符串按指定的分隔符分割成多个子字符串,并返回一个包含这些子字符串的列表
    sep(可选):指定分割字符串的分隔符。如果不指定,则默认使用任意空白字符(空格、制表符 \t、换行符 \n 等)作为分隔符。
    maxsplit(可选):指定最大分割次数。如果指定为 n,则最多分割 n 次,返回 n+1 个子字符串。默认值为 -1,表示不限制分割次数。
  • 按空格分割字符串

    text = "Hello world! How are you?"
    words = text.split()  # 不指定 sep,默认按空白字符分割
    print(words)
    # 输出: ['Hello', 'world!', 'How', 'are', 'you?']
    
  • 按指定字符分割

    csv_line = "apple,banana,orange,grape"
    fruits = csv_line.split(',')  # 按逗号分割
    print(fruits)
    # 输出: ['apple', 'banana', 'orange', 'grape']
    
  • 按制表符分割(TSV 格式)

    tsv_line = "name\tage\tcity\nAlice\t25\tNew York"
    data = tsv_line.split('\t')  # 按制表符分割
    print(data)
    # 输出: ['name', 'age', 'city\nAlice', '25', 'New York']
    
  • 限制分割次数

    ip_address = "192.168.1.1"
    parts = ip_address.split('.', 2)  # 最多分割 2 次
    print(parts)
    # 输出: ['192', '168', '1.1']
    
  • 连续分隔符的处理
    如果分隔符连续出现,会在相应位置返回空字符串。
    如果使用默认的空白字符分隔符,则会自动合并连续的空白字符。

    # 使用指定分隔符(如逗号)
    text = "a,,b,c"
    print(text.split(','))
    # 输出: ['a', '', 'b', 'c']# 使用默认分隔符(空白字符)
    text = "   a   b   c   "
    print(text.split())
    # 输出: ['a', 'b', 'c']
    
  • 处理空字符串

    empty_str = ""
    print(empty_str.split())
    # 输出: []# 指定分隔符时,空字符串会返回包含一个空字符串的列表
    print(empty_str.split(','))
    # 输出: ['']
    
  • 相关方法

    • rsplit():从右侧开始分割,用法与 split() 相同。

      text = "a.b.c.d"
      print(text.rsplit('.', 1))  # 从右侧分割 1 次
      # 输出: ['a.b.c', 'd']
      
    • splitlines():专门用于按行分割字符串,处理不同的换行符(\n、\r、\r\n)。

      text = "Line 1\nLine 2\rLine 3\r\nLine 4"
      print(text.splitlines())
      # 输出: ['Line 1', 'Line 2', 'Line 3', 'Line 4']
      

二,列表(list)

  1. extend()和append()方法: extend()用于将另一个可迭代对象(如列表、元组、集合等)的元素逐个添加到当前列表的末尾。这与 append() 方法不同,append() 是将整个对象作为一个元素添加到列表中。
方法作用
extend()将可迭代对象的元素展开后添加到列表末尾。
示例:[1, 2].extend([3, 4]) → [1, 2, 3, 4]
append()将整个对象作为一个元素添加到列表末尾。
示例:[1, 2].append([3, 4]) → [1, 2, [3, 4]]

示例说明

  • 场景 1:使用 extend()
all_results = []
results = [['结果1'], ['结果2'], ['结果3']]all_results.extend(results)
print(all_results)
# 输出:[['结果1'], ['结果2'], ['结果3']]
  • 场景 2:使用 append()
all_results = []
results = [['结果1'], ['结果2'], ['结果3']]all_results.append(results)  # 注意这里用的是 append
print(all_results)
# 输出:[[['结果1'], ['结果2'], ['结果3']]] (嵌套列表)

常见应用场景

  1. 合并多个列表
list1 = [1, 2]
list2 = [3, 4]
list1.extend(list2)
print(list1)  # 输出:[1, 2, 3, 4]
  1. 批量添加元素
items = []
new_items = (5, 6, 7)  # 元组
items.extend(new_items)
print(items)  # 输出:[5, 6, 7]
  1. 字符串扩展(字符串是可迭代对象)
chars = ['a', 'b']
chars.extend("cd")
print(chars)  # 输出:['a', 'b', 'c', 'd']

性能考虑
extend() 的效率:直接在原列表上修改,避免创建新列表,性能优于多次使用 append()。
适用场景:当需要批量添加元素时,优先使用 extend()。

  1. 使用 += 运算符
all_results = []
results = [1, 2, 3]
all_results += results  # 等价于 all_results.extend(results)
  1. 列表生成式(创建新列表)
all_results = []
results = [1, 2, 3]
all_results = [*all_results, *results]  # Python 3.5+ 支持

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

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

相关文章

私有 Word 文件预览转 PDF 实现方案

私有 Word 文件在线预览方案(.doc/.docx 转 PDF) 前言 由于 .doc 和 .docx Word 文件 无法在浏览器中直接预览(尤其在私有 API 场景下),常见的 Content-Disposition: inline 并不能生效。因此,本方案通过…

Alpine Docker 容器中安装包缓存与 C/C++ 运行问题

在使用 Docker 容器部署应用时,基于 Alpine 镜像能带来轻量化的优势,但过程中也会遇到不少问题。今天就来分享下我在 Alpine 容器中解决安装包缓存与 C/C 程序运行问题的经验。 一、Alpine 安装包缓存到本地目录 Alpine Linux 默认使用apk作为包管理工…

[2-02-02].第59节:功能函数 - 函数基础

服务器端操作学习大纲 一、函数基础 需求场景 在shell脚本的编写过程中,我们经常会遇到一些功能代码场景:多条命令组合在一起,实现一个特定的功能场景逻辑、一些命令在脚本内部的多个位置频繁出现。在这些场景的代码量往往不多,…

RA4M2开发涂鸦模块CBU(6)----RA4M2驱动涂鸦CBU模组

RA4M2开发涂鸦模块CBU.6--RA4M2驱动涂鸦CBU模组 概述视频教学样品申请参考程序硬件准备接口生成UARTUART属性配置R_SCI_UART_Open()函数原型回调函数user_uart_callback0 ()变量定义按键回调更新按键状态DP-LED 同步长按进入配网涂鸦协议解析主循环任务调度 概述 本方案基于瑞…

MiniMax-M1: Scaling Test-TimeCompute Efficiently with I Lightning Attention

我们推出了MiniMax-M1,这是全球首个开源权重、大规模混合注意力推理模型。MiniMax-M1采用了混合专家系统(Mixture-of-Experts,简称MoE)架构,并结合了闪电注意力机制。该模型是在我们之前的MiniMax-Text-01模型&#xf…

Appium+python自动化(二十六) -Toast提示

在日常使用App过程中,经常会看到App界面有一些弹窗提示(如下图所示)这些提示元素出现后等待3秒左右就会自动消失,那么我们该如何获取这些元素文字内容呢? Toast简介 Android中的Toast是一种简易的消息提示框。 当视图…

【信号与系统三】离散时间傅里叶变换

上一讲我们讲述了连续时间傅里叶变换,这一讲同理来个离散时间傅里叶变换。 和上讲模块类似 5.1离散时间傅里叶变换 这一式子就是离散时间傅里叶变换对 5.2周期信号的傅里叶变换 同理,由于之前第一讲讲到: 可以推出: 举个例子&am…

Python应用石头剪刀布练习初解

大家好!作为 Python 初学者,寻找一个既简单又有趣的项目来练习编程技能是至关重要的。今天,我将向大家介绍一个经典的编程练习——石头剪刀布游戏,它可以帮助你掌握 Python 的基本概念,如条件语句、随机数生成和用户输入处理等。 …

私有规则库:企业合规与安全的终极防线

2.1 为什么企业需要私有规则库?——合规与安全的最后防线 真实案例:2023年某跨境电商因员工泄露内部检测规则,导致黑产绕过风控系统,损失1200万+ 企业规则库的三大刚需: 行业合规: 金融行业需符合《个人金融信息保护技术规范》 医疗行业需满足HIPAA患者数据脱敏要求 业…

长尾关键词优化SEO核心策略

内容概要 本文旨在系统解析长尾关键词在搜索引擎优化中的核心地位,为读者提供从理论到实践的全面指南。文章首先探讨长尾关键词的基础作用,帮助理解其在提升网站流量质量中的价值。接着,深入介绍精准定位低搜索量、高转化率关键词的策略&…

腾讯云事件总线:构建毫秒级响应的下一代事件驱动架构

摘要 事件总线(EventBridge)作为云原生架构的核心枢纽,其性能与可靠性直接影响企业系统弹性。腾讯云事件总线基于TGW云网关底层能力重构,实现单节点吞吐量提升125%、故障恢复时间降至4秒级(行业平均>30秒&#xff0…

PyTorch 中mm和bmm函数的使用详解

torch.mm 是 PyTorch 中用于 二维矩阵乘法(matrix-matrix multiplication) 的函数,等价于数学中的 A B 矩阵乘积。 一、函数定义 torch.mm(input, mat2) → Tensor执行的是两个 2D Tensor(矩阵)的标准矩阵乘法。 in…

Qt 解析复杂对象构成

Qt 解析复杂对象构成 dumpStructure 如 QComboBox / QCalendarWidget / QSpinBox … void Widget::Widget(QWidget* parent){auto c new QCalendarWidget(this);dumpStructure(c,4); }void Widget::dumpStructure(const QObject *obj, int spaces) {qDebug() << QString…

山姆·奥特曼:从YC到OpenAI,硅谷创新之星的崛起

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 山姆奥特曼&#xff1a;从YC到OpenAI&#xff0c;硅谷创新之星的崛起 在人工智能革命…

PHP语法基础篇(五):流程控制

任何 PHP 脚本都是由一系列语句构成的。一条语句可以是一个赋值语句&#xff0c;一个函数调用&#xff0c;一个循环&#xff0c;一个条件语句或者甚至是一个什么也不做的语句&#xff08;空语句&#xff09;。语句通常以分号结束。此外&#xff0c;还可以用花括号将一组语句封装…

怎么隐藏关闭或恢复显示输入法的悬浮窗

以搜狗输入法为例&#xff0c;隐藏输入法悬浮窗 悬浮窗在输入法里的官方叫法为【状态栏】。 假设目前大家的输入法相关显示呈现如下状态&#xff1a; 那我们只需在输入法悬浮窗&#xff08;状态栏&#xff09;的任意位置鼠标右键单击&#xff0c;调出输入法菜单&#xff0c;就…

Electron (02)集成 SpringBoot:服务与桌面程序协同启动方案

本篇是关于把springboot生成的jar打到electron里&#xff0c;在生成的桌面程序启动时springboot服务就会自动启动。 虽然之后并不需要这种方案&#xff0c;更好的是部署[一套服务端&#xff0c;多个客户端]...但是既然搭建成功了&#xff0c;也记录一下。 前端文件 1、main.js…

2025年计算机应用与神经网络国际会议(CANN 2025)

2025 International Conference on Computer Applications and Neural Networks &#xff08;一&#xff09;会议信息 会议简称&#xff1a;CANN 2025 大会地点&#xff1a;中国重庆 收录检索&#xff1a;提交Ei Compendex,CPCI,CNKI,Google Scholar等 &#xff08;二&#x…

振动分析中的低频噪声问题:从理论到实践的完整解决方案

前言 在振动监测和结构健康监测领域&#xff0c;我们经常需要从加速度信号计算速度和位移。然而&#xff0c;许多工程师在实际应用中都会遇到一个令人困扰的问题&#xff1a;通过积分计算得到的速度和位移频谱中低频噪声异常放大。 本文将深入分析这个问题的根本原因&#xf…

ncu学习笔记01——合并访存

全局内存通过缓存实现加载和存储过程。其中&#xff0c;L1为一级缓存&#xff0c;每个SM都有自己的L1&#xff1b;L2为二级缓存&#xff0c;L2则被所有SM共有。 数据从全局内存到SM的传输过程中&#xff0c;会去L1和L2中查询是否有缓存。对全局内存的访问将经过L1&#xff1b;…