记录一些Python中不常用但非常好用的函数

zfill(): 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

print('Helloworld'.zfill(50))
0000000000000000000000000000000000000000Helloworld

rsplit(): 从右向左寻找, 对字符串进行分割并返回一个列表

  • sep -- 可选参数,指定的分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • count -- 可选参数,分割次数,默认为分隔符在字符串中出现的总次数。
print('https://home.cnblogs.com/u/frank-shen/'.rsplit('/', 2))
['https://home.cnblogs.com/u', 'frank-shen', '']

random.sample(): 从指定序列中随机获取指定长度的片断

print(sample('0123456789', 3))
['0', '9', '6']

random.shuffle(): 原地打乱列表的顺序

import random
temp = [1, 2, 3, 4, 5]
random.shuffle(temp)   
print(temp)
[4, 5, 3, 1, 2]

 zip() 压缩  zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9, 0]

print(list(zip(a, b)))  # zip返回的是对象, 通过list()转换为列表
print(list(zip(a, c)))  # 元素个数与最短的列表一致

[(1, 4), (2, 5), (3, 6)]
[(1, 7), (2, 8), (3, 9)]

zip 参数前加*  解压 

print(list(zip(*[(1, 4), (2, 5), (3, 6)])))

[(1, 2, 3), (4, 5, 6)]

 . 表示当时文件夹 os.path.abspath('.') 获取当前文件夹的绝对路径

print(os.path.abspath('.')) 

D:\workspace\Python\练习\Demo

 统计字符串每个字符出现的次数

s = 'sdfadfjsdfjdjhgadsf'
res = Counter(s)
print(res)

字典根据键从小到大排序

dict = {'name': 'Frank', 'age': 18}
list = sorted(dict.items(), key=lambda i: i[0], reverse=False)
new_dict = {}
for i in list:
    new_dict[i[0]] = i[1]
print(new_dict)

 位运算符是把数字当作二进制来计算的

a = 60
b = 13
print(a&b)   # 参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
print(a|b)   # 只要对应的二个二进位有一个为1时,结果位就为1
print(a^b)   # 当两对应的二进位相异时,结果为1
print(~a)    # 取反  ~a = -(a+1)
print(a<<2)  # 运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。
print(a>>2)  # 把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
join 和 + 的性能对比
每执行一次+都会申请一块新的内存 然后复制上一个+操作的结果和本次操作的右操作符到这块内存空间,因此用+连接字符串的时候会涉及好几次内存申请和复制
posted @ 2019-01-15 21:36  Frankssss  阅读(249)  评论(0编辑  收藏  举报