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

一,python语法教程.内置API

一,字符串相关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.lryc.cn/news/573523.html

相关文章:

  • 【知识图谱提取】【阶段总结】【LLM4KGC】LLM4KGC项目提取知识图谱推理部分
  • Linux 内核中 TCP 协议栈的输出实现:tcp_output.c 文件解析
  • 【JAVA】数组的使用
  • 电子电气架构 --- 实时系统评价的概述
  • 基于YOLO的智能车辆检测与记录系统
  • Transformer架构每层详解【代码实现】
  • LangGraph--基础学习(工具调用)
  • 2025zbrush雕刻笔记
  • NW849NX721美光固态闪存NX745NX751
  • 微处理器原理与应用篇---计算机系统的结构、组织与实现
  • 给交叉工具链增加libelf.so
  • 操作系统内核态和用户态--2-系统调用是什么?
  • 嵌入式开发之嵌入式系统架构如何搭建?
  • 【软考高级系统架构论文】论面向服务架构设计及其应用
  • modelscope设置默认模型路径
  • python的校园兼职系统
  • Taro 跨端开发:从调试到发布的完整指南
  • 基于正点原子阿波罗F429开发板的LWIP应用(7)——MQTT
  • 华为OD机试-云短信平台优惠活动-完全背包(JAVA 2024E卷)
  • TodoList 案例(Vue3): 使用Composition API
  • 嵌入式开发之嵌入式系统硬件架构设计时,如何选择合适的微处理器/微控制器?
  • 腾讯云IM即时通讯:开启实时通信新时代
  • 一文详解归并分治算法
  • Python:.py文件如何变成双击可执行的windows程序?(版本1)
  • 深入Java面试:从Spring Boot到微服务
  • Django数据库迁移
  • P1220 关路灯
  • Spring Boot + MyBatis + Vue:全栈开发的深度剖析与实践指南
  • IEEE5节点系统潮流仿真模型(simulink+matlab全功能模型)
  • maxcomputer 和 hologres中的EXTERNAL TABLE 和 FOREIGN TABLE