首页 > 代码库 > Python中字符串的有趣玩法
Python中字符串的有趣玩法
反转一个字符串
>>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba'
这种用法叫做three-limit slices
除此之外,还可以使用slice
对象,例如
>>> 'spam'[slice(None, None, -1)] >>>
unicode码与字符(single-character strings)之间的转换
>>> ord('s') # ord -> ordinal 115 >>> chr(115) # chr -> char? 's'
二进制转十进制
>>> B = '1101' >>> I = 0 >>> while B != '': ... I = I * 2 + (ord(B[0]) - ord('0')) ... B = B[1:] ... >>> I 13
这里的二进制到十进制计算方式是我们已经习惯的计算方法不太一样,我们一般习惯于给二进制的每一位乘上权值再求和。
而这里的计算方式其实跟左移操作类似,计算的方向为从左到右。
(1)2 = 1
(11)2 = (1)2 << 1 + 1
(110)2 = (11)2 << 1 + 0
(1101)2 = (110)2 << 1 + 1
当然还有更简单的方式
>>> int('1101', 2) 13 >>> bin(13) '0b1101'
为每个字符添加一个间隔符
>>> S = 'spammy' >>> L = list(S) >>> L ['s', 'p', 'a', 'm', 'm', 'y'] >>> L[3] = 'x' >>> L[4] = 'x' >>> L ['s', 'p', 'a', 'x', 'x', 'y'] >>> S = '-'.join(L) >>> S 's-p-a-x-x-y' >>>
更简洁的版本
>>> 'SPAM'.join(['eggs', 'sausage', 'ham', 'toast']) 'eggsSPAMsausageSPAMhamSPAMtoast'
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。