#2 Python 随机模块

2013-04-17

示例

import string
import random

CHARS1 = string.ascii_letters
CHARS2 = string.ascii_letters + string.digits

def get_random_string(len=5, chars=None):
    if not chars:
        chars = CHARS1
    return ''.join(random.choice(chars) for _ in range(len))

# python3
def get_random_bytes(len=5):
    return bytes(bytearray((random.randrange(256) for _ in range(len))))

# python2
def get_random_bytes(len=5):
    return ''.join(chr(random.randrange(256)) for _ in range(len))

其他 随机字节的方法:

import Cryptodome.Random
Cryptodome.Random.get_random_bytes(size)

In [15]: os.getrandom
Out[15]: <function posix.getrandom(size, flags=0)>

In [17]: os.urandom
Out[17]: <function posix.urandom(size, /)>

#1 Python自学 07: set 类型

2013-04-03

声明

a = set() # ps: {} 表示空字典
b = set([1, 2, 3])
c = {1, 2, 3}

方法清单

  • .add(x) 添加元素
  • .clear() 清空集合
  • .copy() 复制集合

  • .difference() 返回两个集合的差集

  • .difference_update() 在主集合中只移除交集部分

  • .discard() 删除集合中的元素

  • .intersection() 返回两个集合的交集

  • .intersection_update() 在主集合中只保留交集部分

  • .isdisjoint() 判断两个集合是否没有公共元素

  • .issubset() 判断一个集合是否是另一个集合的子集
  • .issuperset() 判断一个集合是否是另一个集合的超集
  • .pop() 删除并返回一个随机元素
  • .remove() 删除集合中的元素

  • .symmetric_difference() 返回两个集合的对称差集,即排除所有重复元素之后的合集

  • .symmetric_difference_update() 在主集合中加入其他集合中的元素,然后移除交集部分

  • .union() 返回两个集合的并集

  • .update() 在一个集合中添加另一个集合中的元素