在Python中构建字符串的最佳方法
Python有没有一种方法,可以方便地构建出像这样的字符串:
Bob 100 Employee Hourly
而不是像这样拼凑字符串:
EmployeeName + ' ' + EmployeeNumber + ' ' + UserType + ' ' + SalaryType
我想要的这个功能可能叫做字符串构建器,可能长得像这样:
stringbuilder(%s,%s,%s,%s, EmployeeName, EmployeeNumber, UserType, SalaryType, \n)
5 个回答
1
Python有两种简单的方法来构建字符串:
一种是字符串格式化,具体可以参考这里: https://docs.python.org/2/library/string.html
>>> '{0}, {1}, {2}'.format('a', 'b', 'c')
'a, b, c'
另一种是老式的 % 操作符,详细信息可以查看这个链接: https://docs.python.org/2.7/library/stdtypes.html#string-formatting
>>> print '%(language)s has %(number)03d quote types.' % \
... {"language": "Python", "number": 2}
Python has 002 quote types.
3
因为 EmployeeNumber
是一个整数对象,或者你可能有很多整数类型的变量,你可以使用 str
函数把它们转换成字符串,这样就可以避免出现 TypeError
错误!
>>> ' '.join(map(str,[EmployeeName, EmployeeNumber,UserType , SalaryType]))
'Bob 100 Employee Hourly'
5
这里你有两个选择:
- 使用字符串的
.join()
方法:" ".join(["This", "is", "a", "test"])
,这个方法可以把列表里的内容用空格连接起来。 - 使用百分号操作符来替换字符串中的部分内容:
"%s, %s!" % ("Hello", "world")
,这个方法可以把字符串中的%s替换成你想要的内容。
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'