2024-09-30 12:13:32 发布
网友
我有一个字典,我想洗牌的价值观,而不是键。例如:
{"a": "ACAT", "b": "ACTG", "c": "ACCC"}
洗牌之后:
但我不知道如何在python中完成这项工作。如果你能帮助我,我将不胜感激
您可以使用random.sample获得dict值的随机顺序列表,然后按照默认顺序将它们与键映射。使用shuffle的不同之处在于,您可以一次性完成此操作
random.sample
shuffle
from random import sample result = dict(zip(values, sample(list(values.values()), len(values))))
运行10次
{'a': 'ACAT', 'b': 'ACCC', 'c': 'ACTG'} {'a': 'ACTG', 'b': 'ACCC', 'c': 'ACAT'} {'a': 'ACCC', 'b': 'ACTG', 'c': 'ACAT'} {'a': 'ACTG', 'b': 'ACAT', 'c': 'ACCC'} {'a': 'ACAT', 'b': 'ACCC', 'c': 'ACTG'} {'a': 'ACCC', 'b': 'ACTG', 'c': 'ACAT'} {'a': 'ACCC', 'b': 'ACTG', 'c': 'ACAT'}
您可以使用for循环和^{}来洗牌dict的值,同时更改原始dict
for
dict
代码:
import random d = {"a": "ACAT", "b": "ACTG", "c": "ACCC"} vals = list(d.values()) random.shuffle(vals) for i, key in enumerate(d): d[key] = vals[i]
说明:
import random
d = {"a": "ACAT", "b": "ACTG", "c": "ACCC"}
d
vals = list(d.values())
val
random.shuffle(vals)
for i, key in enumerate(d): d[key] = vals[i]
random模块有一个在适当的位置进行洗牌的函数
random
所以我们可以得到dict的值,对它们进行洗牌,然后构造一个新的dict
演示:
>>> import random >>> d = { ... "a": "ACAT", ... "b": "ACTG", ... "c": "ACCC" ... } >>> shuffled = list(d.values()) >>> random.shuffle(shuffled) >>> dict(zip(d, shuffled)) {'a': 'ACCC', 'b': 'ACTG', 'c': 'ACAT'}
您可以使用
random.sample
获得dict值的随机顺序列表,然后按照默认顺序将它们与键映射。使用shuffle
的不同之处在于,您可以一次性完成此操作运行10次
您可以使用} 来洗牌
for
循环和^{dict
的值,同时更改原始dict
代码:
说明:
import random
,导入^{d = {"a": "ACAT", "b": "ACTG", "c": "ACCC"}
,将d
设置为dict
vals = list(d.values())
,将val
设置为d
的所有值的列表random.shuffle(vals)
,洗牌{for i, key in enumerate(d): d[key] = vals[i]
,将d
更改为随机值random
模块有一个在适当的位置进行洗牌的函数所以我们可以得到dict的值,对它们进行洗牌,然后构造一个新的dict
演示:
相关问题 更多 >
编程相关推荐