📜  使用随机值构建字典的Python程序(1)

📅  最后修改于: 2023-12-03 15:36:42.283000             🧑  作者: Mango

使用随机值构建字典的Python程序

在Python中,可以使用random模块来生成随机值。配合字典可以实现很多功能,比如随机生成一批字典数据,或者,随机生成符合一定规律的字典数据。

随机生成字典
import random

def random_dict(n, keys_len, values_len):
    """
    随机生成n个字典数据,每个字典数据包含keys_len个键值对,每个键值对的键的长度为keys_len,值的长度为values_len
    """
    result = []
    keys = ["".join([chr(random.randint(97,122)) for i in range(keys_len)]) for j in range(keys_len)]
    values = ["".join([chr(random.randint(97,122)) for i in range(values_len)]) for j in range(values_len)]
    for i in range(n):
        d = {}
        for j in range(keys_len):
            key = keys[j]
            value = values[random.randint(0, values_len-1)]
            d[key] = value
        result.append(d)
    return result

# 调用随机生成字典数据的函数
data = random_dict(10, 5, 8)
print(data)

上面的代码中,random_dict函数接收三个参数n、keys_len和values_len。其中,n表示生成的字典数据个数,keys_len表示每个字典数据中键的数量,也决定了每个键的长度,values_len表示值的长度。

函数中使用了random.randint函数来生成随机数和chr函数来将数字转换成字母。然后使用生成的键和值,通过随机数来创建字典数据。

随机生成符合一定规律的字典

如果需要生成符合一定规律的字典数据,可以使用random.choice函数,从列表中随机选择一个元素。

import random

def random_dict2(n, keys_len, values_len):
    """
    随机生成n个字典数据,每个字典数据包含keys_len个键值对,每个键值对的键的长度为keys_len,值的长度为values_len
    """
    result = []
    keys = ["".join([chr(random.randint(97,122)) for i in range(keys_len)]) for j in range(keys_len)]
    values = ["".join([chr(random.randint(97,122)) for i in range(values_len)]) for j in range(values_len)]
    for i in range(n):
        d = {}
        for j in range(keys_len):
            key = keys[j]
            if j == 0:
                value = "".join([chr(random.randint(65,90)) for i in range(values_len)]) # 第一个键的值的首字母是大写字母
            else:
                value = values[random.randint(0, values_len-1)]
            d[key] = value
        result.append(d)
    return result

# 调用随机生成字典数据的函数
data = random_dict2(10, 5, 8)
print(data)

上面的代码中生成的字典数据中,第一个键的值的首字母是一个大写字母。

这里使用了random.choice函数,从values列表中随机选择一个元素。如果需要更多的规律,可以通过修改代码来实现。