Python字符串不可不知的6个小技巧分享
字符串格式化
【format】可将标识符{}替换为元组中的值,如果{}中未指定序号,则顺序替代。
'{} Love {}'.format('I','U') 'I Love U'
如果{}中指定了序号,则按照序号的顺序替代
>>> '{0} Love {1}, {1} Love {0}'.format('I','U') 'I Love U, U Love I' #最近被蜜雪冰城洗脑了。。。
当然,和C语言一样,这种格式化用于数字转化的情况多一些,python中通过:
来声明数字转化为字符串之后的格式
其中,
^, <, >
分别表示居中、左对齐、右对齐+
表示在正数前显示+,负数前显示 -b
、d
、o
、x
分别是二进制、十进制、八进制、十六进制
具体示例如下
>>> from math import pi
输入 | 输出 | 描述 |
---|---|---|
‘{:.2f}’.format(pi) | ‘3.14’ | 保留两位小数,四舍五入 |
‘{:.2%}’.format(pi) | ‘314.16%’ | 保留两位小数的百分数 |
‘{:+.2f}’.format(1) | ‘+1.00’ | 保留两位小数,带符号 |
‘{:0>5d}’.format(1) | ‘00001’ | 左侧补0,宽度为5 |
‘{:>5d}’.format(1) | ‘01’ | 左侧补空格,宽度为5 |
‘{:x<5d}’.format(1) | ‘1xxxx’ | 右侧补x,宽度为5 |
‘{:-^5d}’.format(1) | ‘–1–’ | 两侧补-,宽度为5 |
‘{:,}’.format(1e5) | ‘100,000.0’ | 逗号分隔 |
‘{:.2e}’.format(1e5) | ‘1.00e+05’ | 科学计数法 |
‘{:b}’.format(8) | ‘1000’ | 二进制 |
首字母大小写
python中,字符串内置title()
函数,可以将字符串内每个词进行首字母大写。
"python".title()
python字符串提供了.lower
和.upper
函数,可以进行大小写转换。据此可以将首字母重新变为小写。
>>> def deCapitalize(string): ... return string[0].lower() + string[1:] ... >>> capitalize("Hello") 'hello'
字符串拼接
【join】是字符串的内置方法,可以将一个字符串列表,用特定的字符串串联起来,组成一个新的字符串,示例如下
>>> date = ['2021','3','10'] >>> '-'.join(date) '2021-3-10'
通过正则表达式统计字母个数
【re】为python中的正则表达式包,其中re.findall
可将正则表达式所选中的内容挑出。在正则表达式中,方括号[]
内部的字符彼此之间是“或”的关系。
据此可以统计字符个数,例如统计元音字母[aeiou]
的个数,可用如下方
import re def count_vowels(str): return len(len(re.findall(r [aeiou] , str, re.IGNORECASE))) count_vowels( foobar ) # 3 count_vowels( gym ) # 0
变位词
如果两个单词中出现的字母相同,且每个字母出现的次数也相同,则这两个单词互为变位词(Anagram)。
【Counter】是collections中用以统计数据中元素个数的方法,其返回值是个字典,可根据这个特性来对比两个字符串是否互为变位词
from collections import Counter def isAnagram(first, second): return Counter(first) == Counter(second)
计算字节大小
将字符串转化为utf-8编码后,其长度即为字节大小。以下方法将以字节为单位返回字符串长度。
def byte_size(string): return(len(string.encode('utf-8'))) byte_size("我爱你") # 9
到此这篇关于Python字符串不可不知的6个小技巧分享的文章就介绍到这了,更多相关Python字符串技巧内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Blueprint实现路由分组及Flask中session的使用详解
这篇文章主要为大家介绍了Blueprint实现路由分组及Flask中session的使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-11-11
最新评论