Python中构建字符串的最佳方法

14

Python有没有一个函数可以整洁地构建一个像这样的字符串:

Bob 100 Employee Hourly

不需要像这样构建字符串:

EmployeeName + ' ' + EmployeeNumber + ' ' + UserType + ' ' + SalaryType

我正在寻找的函数可能被称为StringBuilder,看起来像这样:

stringbuilder(%s,%s,%s,%s, EmployeeName, EmployeeNumber, UserType, SalaryType, \n)
5个回答

25

通常情况下,您需要查找str.join。它接受一个参数,即包含您要链接在一起的内容的可迭代对象,并将其应用于分隔符:

>>> ' '.join((EmployeeName, str(EmployeeNumber), UserType, SalaryType))
'Bob 100 Employee Hourly'
然而,考虑到您确切知道字符串将由哪些部分组成,而且并非所有部分都是本地字符串,因此最好使用format
>>> '{0} {1} {2} {3}'.format(EmployeeName, str(EmployeeNumber), UserType, SalaryType)
'Bob 100 Employee Hourly'

1
唯一可能失败的方式是,如果任何字段(例如“EmployeeNumber”)不是字符串,则需要显式使用str(EmployeeNumber) - bereal

18

你的问题是关于Python 2.7的,但值得注意的是从Python 3.6开始,我们可以使用f-strings

place = 'world'
f'hallo {place}'

'你好世界'

这个以f为前缀的字符串,称为格式化字符串字面量f字符串,在词法分析文档中进行了描述。


5

这里有两个选项:

  • 使用字符串 .join() 方法: " ".join(["This", "is", "a", "test"])
  • 使用百分号操作符来替换字符串中的部分内容:"%s, %s!" % ("Hello", "world")

3

由于EmployeeNumber是一个整型对象,或者您的变量中可能有很多整型数据,因此您可以使用str函数将它们转换为字符串类型,以避免出现TypeError错误!

>>> ' '.join(map(str,[EmployeeName, EmployeeNumber,UserType , SalaryType]))
'Bob 100 Employee Hourly'

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接