gpt4 book ai didi

python - 查找字母的所有组合,从字典中的不同键中选择每个字母

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:11:18 26 4
gpt4 key购买 nike

假设我们有这个数据结构:

class Lock:
def __init__(self):
self.data1 = ['a', 'd', 'e', 'l', 's']
self.data2 = ['s', 'i', 'r', 't', 'n']
self.data3 = ['b', 'o', 'e', 'm', 'k']
self.data4 = ['f', 'y', 'u', 'n', 'g']

或者,

d = {'1': ['a', 'd', 'e', 'l', 's'], '2': ['s', 'i', 'r', 't', 'n'], '3': ['b', 'o', 'e', 'm', 'k'], '4': ['f', 'y', 'u', 'n', 'g'] }

假设每个字母都是从不同的键或数组中选择的,我想找到所有可能的字母组合。顺序很重要,因此第一个字母必须始终来自“data1”,第二个字母必须来自“data2”,等等。

目的是然后对照字典检查这些词,看看哪些是英语有效词。我假设获得所有组合的列表,然后进行检查将是最快的,但如果不是这种情况,我想要一些输入。

最佳答案

使用itertools.product() :

for combo in itertools.product(self.data1, self.data2, self.data3, self.data4):
# combo is a tuple of 4 characters.

或:

for combo in itertools.product(*[d[k] for k in sorted(d.keys())]):
# combo is a tuple of 4 characters.

演示:

>>> import itertools                                                                                                                >>> d = {'1': ['a', 'd', 'e', 'l', 's'], '2': ['s', 'i', 'r', 't', 'n'], '3': ['b', 'o', 'e', 'm', 'k'], '4': ['f', 'y', 'u', 'n', 'g'] }
>>> for combo in itertools.product(*[d[k] for k in sorted(d.keys())]):
... print ''.join(combo)
...
asbf
asby
asbu
asbn
asbg
asof
asoy
asou
ason
asog
asef

...

snkf
snky
snku
snkn
snkg

关于python - 查找字母的所有组合,从字典中的不同键中选择每个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14692029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com