美文网首页
Python方便快捷的小技巧

Python方便快捷的小技巧

作者: 烟花如雨旧故里 | 来源:发表于2020-12-11 14:03 被阅读0次

本文是我编程时遇到的一些Python小技巧,总结出来,不定期更新~

  1. 二进制中的1或0数量
# bin(n)的结果是以'0b'开头的字符串
bin(n).count('1')  #1的数量
bin(n).count('0')-1  #0的数量
  1. 字母转数字
ord('a') #97
  1. 使用位运算字母大小写转换
def change(a):
  a = ord(a) ^ ord(' ')
  return chr(a)
# a='f', change(a)='F'
# a='F', change(a)='f'
  1. 判断一个数的二进制是否为1、0交替
# 一个数如果是1、0交替,那么它与自身右移一位后异或后并加一
# 结果应该只有一位1,其他位都是0
def check_10switch(n):
  tmp = (n ^ (n >>1)) + 1
  return bin(tmp).count('1')
  1. 不使用+-实现两个整数之和
def getSum(a, b):
  while b:
    c = a&b
    a ^= b
    b = c<<1
  return a
  1. collections.Counter().elements
    先看看官方解释:

elements() is one of the functions of Counter class, when invoked on the Counter object will return an itertool of all the known elements in the Counter object.

elements()函数是Counter下边的方法,被调用后会返回一个迭代器,迭代器里是一个Counter对象的全部元素。
看代码更好理解:

from collections import Counter

a_o = [1,1,1,2,2]
a = Counter(a_o)
print(a)  #Counter({1: 3, 2: 2})
print(a.elements())  #<itertools.chain object at 0x101016588>
print(list(a.elements()))  #[1,1,1,2,2]
print(list(a.elements()) == a_o)  #True

相关文章

网友评论

      本文标题:Python方便快捷的小技巧

      本文链接:https://www.haomeiwen.com/subject/artjgktx.html