sprintf( )函数很强大,但并非适用于所有应用场景。例如,如果一些部分在模板
中多次出现,那么就需要多次写一样的参数。这通常会使得代码冗长而且难以修改:
sprintf("%s, %d years old, majors in %s and loves %s.", "James", 25,"Physics",
"Physics")
## [1] "James, 25 years old, majors in Physics and loves Physics."
占位符可以用其他方式来表达。pystr 包提供了 pystr_format( )函数,以 Python
的风格,使用数字或者命名占位符来格式化字符串。前面的例子可以使用这个函数通过两
种方式重写:
一种是使用数值占位符:
# install.packages("pystr")
library(pystr)
pystr_ _format("{1}, {2} years old, majors in {3} and loves {3}.", "James",
25, "Physics", "Physics")
## [1] "James, 25 years old, majors in Physics and loves Physics."
另一种是使用命名占位符:
pystr_ _format("{name}, {age} years old, majors in {major} and loves {major}.",
name = "James", age = 25, major = "Physics")
## [1] "James, 25 years old, majors in Physics and loves Physics."
两种情况,参数都无须重复,并且模板字符串中输入内容的位置可以轻易地被移动到
其他位置。
相关文章
- 03-31在Python的Flask框架下Address already in use [地址已在使用中]
- 03-31在 R 中使用 Python 字符串函数
- 03-31如何使用MPI在Python中的进程之间共享数据?
- 03-31python中函数使用
- 03-31在Python 2.7中使用变量引用类属性
- 03-31Python中的split()函数的使用方法
- 03-31转载 为什么print在Python 3中变成了函数?
- 03-31python – 在pyaudio中使用rate / format / chunk中的任何其他值给出错误:[Errno Input overflowed] -9981
- 03-31使用PyAudio在Python中录制环回(‘你听到的’)
- 03-31python – 有没有办法将函数存储在列表或字典中,以便在调用索引(或键)时触发存储的函数?