>>> S = 'abcdefghijklmnop' >>> S[::-1] 'ponmlkjihgfedcba'
这种用法叫做three-limit slices
除此之外,还可以使用slice
对象,例如
>>> 'spam'[slice(None, None, -1)] >>>
>>> 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
这里的二进制到十进制计算方式是我们已经习惯的计算方法不太一样,我们一般习惯于给二进制的每一位乘上权值再求和。
而这里的计算方式其实跟左移操作类似,计算的方向为从左到右。
当然还有更简单的方式
>>> 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'