如何在某个位置添加字符串?

2025-02-18 09:23:00
admin
原创
87
摘要:问题描述:Python 中是否有任何函数可以用来在字符串的某个位置插入值?像这样:"3655879ACB6"然后在位置 4 添加"-"成为"3655-879ACB6"解决方案 1:不,Python 字符串是不可变的。>>> s='3...

问题描述:

Python 中是否有任何函数可以用来在字符串的某个位置插入值?

像这样:

"3655879ACB6"然后在位置 4 添加"-"成为"3655-879ACB6"


解决方案 1:

不,Python 字符串是不可变的。

>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

但是,可以创建一个包含插入字符的新字符串:

>>> s[:4] + '-' + s[4:]
'3558-79ACB6'

解决方案 2:

这看起来很简单:

>>> hash = "355879ACB6"
>>> hash = hash[:4] + '-' + hash[4:]
>>> print hash
3558-79ACB6

但是如果你喜欢类似函数的东西,可以这样做:

def insert_dash(string, index):
    return string[:index] + '-' + string[index:]

print insert_dash("355879ACB6", 5)

解决方案 3:

由于字符串是不可变的,另一种方法是将字符串转换为列表,然后可以对其进行索引和修改,而无需任何切片技巧。但是,要将列表恢复为字符串,您必须使用.join()空字符串。

>>> hash = '355879ACB6'
>>> hashlist = list(hash)
>>> hashlist.insert(4, '-')
>>> ''.join(hashlist)
'3558-79ACB6'

我不确定就性能而言这如何比较,但我确实觉得它比其他解决方案更容易接受。;-)

解决方案 4:

完成此操作的简单函数:

def insert_str(string, str_to_insert, index):
    return string[:index] + str_to_insert + string[index:]

解决方案 5:

Python 3.6+ 使用 f 字符串:

mys = '1362511338314'
f"{mys[:10]}_{mys[10:]}"

给出

'1362511338_314'

解决方案 6:

我制作了一个非常有用的方法来在 Python 中的某个位置添加字符串

def insertChar(mystring, position, chartoinsert ):
    mystring   =  mystring[:position] + chartoinsert + mystring[position:] 
    return mystring  

例如:

a = "Jorgesys was here!"

def insertChar(mystring, position, chartoinsert ):
    mystring   =  mystring[:position] + chartoinsert + mystring[position:] 
    return mystring   

#Inserting some characters with a defined position:    
print(insertChar(a,0, '-'))    
print(insertChar(a,9, '@'))    
print(insertChar(a,14, '%'))   

我们将得到以下输出:

-Jorgesys was here!
Jorgesys @was here!
Jorgesys was h%ere!

解决方案 7:

我认为上述答案都很好,但我想解释一下它们有一些意想不到但很好的副作用......

def insert(string_s, insert_s, pos_i=0):
    return string_s[:pos_i] + insert_s + string_s[pos_i:]

如果索引 pos_i 非常小(太负),则插入字符串将被添加到前面。如果太长,则插入字符串将被添加到后面。如果 pos_i 介于 -len(string_s) 和 +len(string_s) - 1 之间,则插入字符串将被插入到正确的位置。

解决方案 8:

如果您需要在多个位置插入给定的字符,请始终考虑创建一个子字符串列表,然后使用它.join()而不是+进行字符串连接。这是因为,由于 Pythonstr是可变的,字符串连接总是会增加额外的开销。更多信息可以在这里+找到。

解决方案 9:

我想添加另一个简单的单行解决方案;)

'-'.join([_string[:4], _string[4:]]

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   3975  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   2742  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Freshdesk、ClickUp、nTask、Hubstaff、Plutio、Productive、Targa、Bonsai、Wrike。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在项目管理过程中面临着诸多痛点,如任务分配不...
项目管理系统   80  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Monday、TeamGantt、Filestage、Chanty、Visor、Smartsheet、Productive、Quire、Planview。在当今快速变化的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多项目经理和团队在管理复杂项目时,常...
开源项目管理工具   88  
  本文介绍了以下10款项目管理软件工具:禅道项目管理软件、Smartsheet、GanttPRO、Backlog、Visor、ResourceGuru、Productive、Xebrio、Hive、Quire。在当今快节奏的商业环境中,项目管理已成为企业成功的关键因素之一。然而,许多企业在选择项目管理工具时常常面临困惑:...
项目管理系统   77  
热门文章
项目管理软件有哪些?
曾咪二维码

扫码咨询,免费领取项目管理大礼包!

云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用