Python 如何列出dict.items()中所有可能的3个字母组合?

Python 如何列出dict.items()中所有可能的3个字母组合?,python,python-3.x,dictionary,Python,Python 3.x,Dictionary,我在做一个连续的字母检查器,我遇到了这个问题,它应该返回键盘上所有的三个字母组合,但是,我不明白最后一部分我做错了什么,我怎么能让它工作?我只能让它为dict中的key()而不是items()打印3个字母组合。我要查找的结果是“items()”中所有可能的3个字母组合都可以打印在列表中 keyboard = {'line1':'qwertyuiop', 'line2':'asdfghjkl', 'line3':'zxcvbnm'} def

我在做一个连续的字母检查器,我遇到了这个问题,它应该返回键盘上所有的三个字母组合,但是,我不明白最后一部分我做错了什么,我怎么能让它工作?我只能让它为dict中的
key()
而不是
items()
打印3个字母组合。我要查找的结果是“items()”中所有可能的3个字母组合都可以打印在列表中

keyboard = {'line1':'qwertyuiop',
            'line2':'asdfghjkl',
                'line3':'zxcvbnm'}

def consequ(key):
    a = []
    for each_key in key:
        for i in range(len(key[each_key])-2):
            a.append(each_key[i:i+3])
    return a
我通过编写来调用函数

consequ(keyboard)
输出由以下代码给出:

['lin'、'ine'、'ne1'、'e1'、'1'、''、''、'lin'、'ine'、'ne2'、'e2'、'2'、''、''、'lin'、'ine'、'ne3'、'e3'、'3']

想要的输出是:


['qwe','wer','ert','rty','tyu','yui','uio','iop','asd','sdf','dfg','fgh','ghj','hjk','jkl','zxc','xcv','cvb','vbn','bnm']

如果要存储所有这些键盘组合,必须迭代字典的值。然而,你写道:

a.append(each_key[i:i+3])
#        ^ key of the dictionary
因此,您必须将其改写为:

def consequ(key):
    a = []
    for line in key.values():
        for i in range(len(line)-2):
            a.append(line[i:i+3])
    return a
它们产生:

>>> consequ(keyboard)
['zxc', 'xcv', 'cvb', 'vbn', 'bnm', 'asd', 'sdf', 'dfg', 'fgh', 'ghj', 'hjk', 'jkl', 'qwe', 'wer', 'ert', 'rty', 'tyu', 'yui', 'uio', 'iop']

请注意,大多数Python解释器都有无序的字典,因此行的顺序可能会有所不同。

在这里您称之为
conseq
的是什么?这里的键是conseq(键盘)组合():)您想要什么输出?另外,您如何调用此函数?这是一个关键的细节。3个dict.items()的所有可能的3个字母组合正是我想要的,谢谢!我不能接受你的回答,尽管它说我能在6分钟内接受
>>> consequ(keyboard)
['zxc', 'xcv', 'cvb', 'vbn', 'bnm', 'asd', 'sdf', 'dfg', 'fgh', 'ghj', 'hjk', 'jkl', 'qwe', 'wer', 'ert', 'rty', 'tyu', 'yui', 'uio', 'iop']