python中元素进行替换有很多方法,下面是我学习中的一些总结

1、字符串替换str.replace()方法

python中的replace()方法是把字符串中的old字符串替换成new的字符串,如果指定替换次数max,则按照替换次数进行替换

str.replace(old,new,count=0)

old:字符串替换前的字符

new:字符串替换后的字符

count:替换的次数,默认为0,不填表示全局替换

>>>str = "hello world! I love python!"

>>>str.replace("l","@") # 表示全局替换

'he@@o wor@d! I @ove python!'

>>>str.replace("l","@",2) # 替换指定次数

'he@@o world! I love python!'

>>>str.replace("l","@",2).replace("o","$") # 多个字符替换可以进行链式调用replace()方法

'he@@$ w$rld! I l$ve pyth$n!'

2、正则表达式中的sub()和subn()方法

sub(pattern, repl, string)

其中pattern表示原字符串中的字符,repl表示需要替换成的字符,string表示需要替换的字符串;

subn()和sub()的区别在于subn()返回的一个包含新字符串和替换次数的二元组;

>>>import re

>>>str = "hello world! I love python!"

>>>re.sub("hello","nihao",str)

'nihao world! I love python!'

>>>re.subn("l","*",str)

('he**o wor*d! I *ove python!', 4)

>>>

3、如果同时处理多个字符串的替换,此时可以使用string的maketrans()和translate()方法

maketrans()方法用来生成字符映射表,而translate()方法则按映射表中定义的对应关系转换并替换其中的字符,用这两种方法可以同时处理多个不同的字符。

>>>table = ''.maketrans("abcdefghij","1234567890") # 创建映射表,注意字符串的长度要一致,达到一一对应的目的

>>>str = "hello world! i love python"

>>>str.translate(table) # 按照关系表将sting中的字符逐个进行替换

'85llo worl4! 9 lov5 pyt8on'

>>>

4、对列表里的元素进行替换,可以使用列表解析的方法

>>>list = [1,2,3,4]

>>>rep = [5 if x==1 else x for x in list]

>>>rep

[5, 2, 3, 4]

>>>

批量进行替换

>>>list = [1,2,3,4,5]

>>>pattern = [2,4]

>>>rep = ["a" if x in pattern else x for x in list]

>>>rep

[1, 'a', 3, 'a', 5]

>>>

根据字典的映射进行替换

>>>list

[1, 2, 3, 4, 5]

>>>dict = {1:"apple", 3:"banana"}

>>>rep = [dict[x] if x in dict else x for x in list]

>>>rep

['apple', 2, 'banana', 4, 5]

>>>

5、在Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能重新创建一个新的字符串对象。但是如果一定要修改原字符串,可以使用io.StringIO对象。

>>>from io import StringIO

>>>str = "hello world!"

>>>io_str = StringIO(str)

>>>io_str

<_io.StringIO object at 0x7fa1e61addc8>

>>>io_str.tell() # 返回当前的位置

0

>>>io_str.read() # 从当前位置开始读取字符串

'hello world!'

>>>io_str.getvalue() # 返回字符串的全部内容

'hello world!'

>>>io_str.seek(6) # 定义开始修改的位置

6

>>>io_str.write("china") # 修改字符串

5

>>>io_str.read()

'!'

>>>io_str.getvalue() # 获取修改后的字符串全部内容

'hello china!'

>>>io_str.tell()

12

>>>

python替换列表中元素_python中关于元素替换的一些总结相关推荐

  1. python嵌套列表怎么遍历_Python中遍历列表,循环嵌套

    1.遍历列表中的元素:用for(操作元素)和while(操作索引)实现 #将列表中的所有元素打印出来 #for循环主要结合成员运算符使用,此时只能操作元素 list1= ["and" ...

  2. python求列表的中位数_python中获取中位数的两种方法

    普通方法: 对列表进行排序,然后根据长度为奇数或者偶数的不同情况计算中位数 def huahua(x): length = len(x) print(length) x.sort() print(x) ...

  3. python列表取出元素_python中的列表,添加元素,获取元素,删除元素,列表分片,常用操作符...

    一. 创建列表,分为创建普通列表,混合列表,和空列表.其中混合列表是指string,int, float等都可以写在同一个列表里,空列表是指列表可以为空 二. 在列表添加成员方法 1. append( ...

  4. python中怎么比较两个列表的大小_python中对列表元素大小排序(冒泡排序法,选择排序法和插入排序法)—排序算法...

    前言 排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列.本文主要讲述python中经常用的三种排序算法,选择排序法 ...

  5. python字符串的方法和列表的方法_Python 中列表和字符串的方法总结

    一.列表 1.li.append()        #添加元素到末尾,返回none 2.li.clear()            #清空列表,一个比较危险的方法(QAQ) 3.li.copy()   ...

  6. python列表方法图解_python中list(列表)的使用方法总结(图文)

    本篇文章给大家带来的内容是关于python中list(列表)的使用方法总结(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.list(列表)是一种有序的集合,可以随时添加. ...

  7. python列表方法语句_Python中列表和元组的相关语句和方法讲解

    列表(list): 首先,列表属于序列,那么序列类型可用如下内建函数-- list(iter):把可迭代对象转换为列表. str(obj):把obj对象转换为字符串,即用字符串来表示这个对象. tup ...

  8. python列表对象相同_Python中的学习列表对象,List

    List(列表) 是 Python 中使用最频繁的数据类型. 列表可以完成大多数集合类的数据结构实现.列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套). 列表是写在方括号 [ ...

  9. python list删除元素_python中List添加、删除元素的几种方法

    原博文 2015-06-21 18:51 − 一.python中List添加元素的几种方法 List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非 ...

最新文章

  1. Oracle教程之四招提高Oracle位图索引的使用效果
  2. linux 硬链接和软链接
  3. Scrum之 站立例会
  4. 互联网趋势关键词:交流,为价值付费,资源整合
  5. A Network in a Laptop: Rapid Prototyping for Software-Defined Networks
  6. JavaScript中this的指向问题
  7. 洛谷 P2919 [USACO08NOV]守护农场Guarding the Farm
  8. LeetCode LCP 12. 小张刷题计划(二分查找)
  9. java+中的final关键字有哪些用法_Java中的Final关键字用法汇总及简单示例
  10. 37岁程序员被裁,120天没找到工作,面试华为阿里均被拒,无奈降薪去小公司后懵了...
  11. OpenCV中基本数据结构(2)_Scalar
  12. vmware-安装vmware tools教程190915
  13. 【Oracle的存储过程之面向对象之特性】
  14. Linux 操作系统下常见信号详解
  15. make it a chorus笔记
  16. Linux 下 Error: Could not find or load main class Hello world
  17. 大数据技术的理解误区
  18. 基于SSM的小说阅读网站
  19. libreelec投屏_PVE系列四:安装LibreELEC-KODI的LINUX版
  20. java 实现pdf 转图片_java实现pdf转图片pdf

热门文章

  1. 自动驾驶系统的传感器标定方法
  2. 撸羊毛当当图书618优惠码,花120买300(含书单推荐)
  3. 火狐浏览器打不开淘宝首页的解决办法
  4. 第十七章 : 网络系统
  5. python二进制转中文_python3 二进制转中文
  6. iphone12android在线,【苹果iPhone12评测】安卓机吃尽高刷红利,为何iPhone 12还是缺席?(全文)_苹果 iPhone 12_手机评测-中关村在线...
  7. DRV8825 TB8825 最佳线路图布局
  8. 网络渗透作业202105110124郭静
  9. 抖音qu水印采集下载源码 附带成品软件
  10. 数据结构:10大经典排序