python笔记7

news/2025/2/14 6:22:58/

目录

1、字符串的去重

2、正则表达式


1、字符串的去重

在Python中,你可以使用不同的方法对字符串进行去重,具体取决于你的需求。以下是一些可能的方法:

  1. 使用集合(Set):

    利用集合的特性,集合中的元素是唯一的。你可以将字符串转换为集合,然后再将其转回字符串。

    original_string = "abracadabra"
    unique_chars = ''.join(set(original_string))
    print("String with unique characters:", unique_chars)
    

    注意:这种方法无法保持原始字符串中字符的顺序。

  2. 使用循环和条件判断:

    通过遍历原始字符串,逐个字符添加到新的字符串中,但只添加之前没有添加过的字符。

    original_string = "abracadabra"
    unique_chars = ""for char in original_string:if char not in unique_chars:unique_chars += charprint("String with unique characters:", unique_chars)
    

    这种方法会保持原始字符串中字符的顺序。

  3. 使用字典保持顺序:

    利用字典的键的唯一性,逐个遍历字符,将其作为字典的键添加,最后取字典的键即可。

    original_string = "abracadabra"
    unique_chars = ''.join(dict.fromkeys(original_string))print("String with unique characters:", unique_chars)
    

    这种方法也会保持原始字符串中字符的顺序。

2、正则表达式

正则表达式(Regular Expressions,简称为Regex或RegExp)是一种强大而灵活的文本匹配工具,用于在字符串中搜索、匹配和替换文本。正则表达式由一系列字符和操作符构成,形成一个搜索模式。

以下是一些常见的正则表达式元字符

  1. 匹配任意单个字符,除了换行符。
    import repattern = r"H.t"  # 匹配 "Hat"、"Hot" 等
    text = "Hat is hot."
    result = re.findall(pattern, text)
    print(result)
    

  2. * 匹配前面的元字符零次或多次。

    pattern = r"ab*"  # 匹配 "a", "ab", "abb", "abbb", 等
    text = "abb"
    result = re.findall(pattern, text)
    print(result)
    

  3. + 匹配前面的元字符一次或多次。

    pattern = r"ab+"  # 匹配 "ab", "abb", "abbb", 等,但不匹配 "a"
    text = "abb"
    result = re.findall(pattern, text)
    print(result)
    

  4. 匹配前面的元字符零次或一次。

    pattern = r"ab?"  # 匹配 "a" 或 "ab"
    text = "abb"
    result = re.findall(pattern, text)
    print(result)
    

  5. [] 匹配方括号中的任意一个字符。

    pattern = r"[aeiou]"  # 匹配任何一个元音字母
    text = "Hello"
    result = re.findall(pattern, text)
    print(result)
    

  6. ^$^匹配字符串的开头。             $匹配字符串的结尾。

    pattern = r"^Hello"  # 匹配以 "Hello" 开头的字符串
    text = "Hello, World!"
    result = re.findall(pattern, text)
    print(result)
    

  7. \ 转义字符,用于匹配特殊字符。

    pattern = r"\d+"  # 匹配一个或多个数字
    text = "There are 123 apples."
    result = re.findall(pattern, text)
    print(result)
    

re模块:

re模块是 Python 中用于处理正则表达式的标准库模块。它提供了一组功能,允许你在字符串中进行模式匹配、搜索和替换等操作。以下是一些 模块中常用的函数:

  1. re.match(pattern, string)字符串的开头匹配模式,如果匹配成功返回一个匹配对象,否则返回 。None
    import repattern = r"Hello"
    text = "Hello, World!"match_result = re.match(pattern, text)
    if match_result:print("Match found:", match_result.group())
    else:print("No match.")
    

  2. re.search(pattern, string)整个字符串中搜索模式,如果匹配成功返回一个匹配对象,否则返回 。None

    pattern = r"World"
    text = "Hello, World!"search_result = re.search(pattern, text)
    if search_result:print("Match found:", search_result.group())
    else:print("No match.")
    

  3. re.findall(pattern, string) 返回字符串中所有与模式匹配的子串组成的列表。

    pattern = r"\b\w+\b"  # 匹配单词
    text = "Hello, World! This is a sample text."findall_result = re.findall(pattern, text)
    print("All matches:", findall_result)
    

  4. re.finditer(pattern, string) 返回一个迭代器,迭代器中的每个元素都是一个匹配对象。

    pattern = r"\b\w+\b"  # 匹配单词
    text = "Hello, World! This is a sample text."finditer_result = re.finditer(pattern, text)
    for match in finditer_result:print("Match found:", match.group())
    

  5. re.sub(pattern, replacement, string) 替换字符串中与模式匹配的部分。

    pattern = r"\b\w+\b"  # 匹配单词
    text = "Hello, World! This is a sample text."replaced_text = re.sub(pattern, "REPLACED", text)
    print("Replaced text:", replaced_text)
    

    pattern:一个正则表达式模式,用于匹配字符串中的部分内容。                                        replacement:用于替换匹配部分的字符串。                                                                            string:待处理的字符串,对其进行替换操作。

  6. re.split(pattern, string)拆分字符串。

    import repattern = r"\s"  # 以空格为分隔符
    text = "Hello World! This is a sample text."result = re.split(pattern, text)
    print(result)
    


http://www.ppmy.cn/news/1333006.html

相关文章

SQL查询数据库环境(dm8达梦数据库)

SQL查询数据库环境dm8达梦数据库 环境介绍 环境介绍 某些环境没有图形化界面,可以使用sql语句查询达梦数据库环境情况 SELECT 实例名称 数据库选项,INSTANCE_NAME 数据库选项相关参数值 FROM V$INSTANCE UNION ALL SELECT 授权用户,(SELECT AUTHORIZED_CUSTOMER FROM V$LICE…

aio-max-nr达到上限导致数据库性能问题

问题说明: rac数据库节点一表面上看由于归档等待事件导致业务性能问题。 问题分析过程: 查看awr报告top事件,等待事件主要为归档切换问题: 查看事件,归档等待达到20多分钟 检查节点alert日志发现,最…

通信技术的OSI协议层

通信协议层是网络通信虫的重要组成部分.它定义了在网络进行数据传输时所需遵循的规则和流程。而OSI参考模型是由国际标准化组织提出的概念模型,可以为各种计算机互连构成网络提供标准框架。在用 OSI模型实现融媒体平台网络组建的过程中,相关主体需要认识…

代码随想录算法训练营第二天—数组02 | *977.有序数组的平方 ,209.长度最小的子数组 ,*59.螺旋矩阵II

*977.有序数组的平方 题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/ 文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%B9.html 视频讲解: https://www.bilib…

在docker中配置 Linux ls 配色方案 与 shell 提示符

发行版中默认的配置一般非常合理,但是docker中往往忽略了这些简单的配置,备忘一下 1. ls 配色方案 vim ~/.bashrc 在文件最末尾加入如下一行内容: export LS_COLORS"rs0:di01;34:ln01;36:mh00:pi40;33:so01;35:do01;35:bd40…

Leetcode131.分割回文串-Palindrome Patitioning-Python-回溯法

解题思路: 1.切割回文串,可以用解决找组合问题的思路解决,而解决组合问题,可以用回溯法,故本题选择回溯法。 2.理解两个事情:1.递归函数里的for循环是横向遍历给定字符串s的每一个字母。2.针对s的每一个字…

湿法蚀刻酸洗槽—— 应用半导体新能源光伏光电行业

PFA清洗槽又被称为防腐蚀槽、酸洗槽、溢流槽、纯水槽、浸泡槽、水箱、滴流槽,是四氟清洗桶后的升级款,是为半导体光伏光电等行业设计,一体成型,无需担心漏液。主要用于浸泡、清洗带芯片硅片电池片的花篮。 由于PFA的特点它能耐受…

【Linux】文件fd 重定向 C语言FILE*封装文件fd 用户级缓冲区

文章目录 一、文件描述符1. 理解:Linux下一切皆文件2. 文件描述符(fd)的概念3. 文件描述符的分配规则4. 进程创建时默认打开的 0 & 1 & 2 号文件 二、重定向1. 重定向的本质2. 使用dup2系统调用函数3. bash下的三种重定向4. 三种重定…