Python 什么';建立这本词典的最佳方式是什么?
我想创建一个字典,这样QWERTY键盘第一行中的字母值为1,主行中的键值为0,底行中的键值为2 我只想写一行,但我想不出一个方法 我知道第一行就可以了,但是有没有办法把所有的行放在一行中呢Python 什么';建立这本词典的最佳方式是什么?,python,dictionary,performance,Python,Dictionary,Performance,我想创建一个字典,这样QWERTY键盘第一行中的字母值为1,主行中的键值为0,底行中的键值为2 我只想写一行,但我想不出一个方法 我知道第一行就可以了,但是有没有办法把所有的行放在一行中呢 firstRow = {i:1 for i in "q w e r t y u i o p".split(' ')} 编辑,我想到了这个: keyboardRating = dict({i:1 for i in "q w e r t y u i o p".split(' ')}.items() + {i:0
firstRow = {i:1 for i in "q w e r t y u i o p".split(' ')}
编辑,我想到了这个:
keyboardRating = dict({i:1 for i in "q w e r t y u i o p".split(' ')}.items() + {i:0 for i in "a s d f g h j k l".split(' ')}.items() + {i:2 for i in "z x c v b n m".split(' ')}.items())
但是我正在寻找更简单的方法。好吧,首先,有一个巧妙的技巧可以获得第一行的
:
firstRow = dict.fromkeys('qwertyuiop', 1)
那我们就可以写了
keys = {}
keys.update(dict.fromkeys('qwertyuiop', 1))
keys.update(dict.fromkeys('asdfghjkl', 2))
keys.update(dict.fromkeys('zxcvbnm,', 3))
或者,您可以尝试以下方法:
rows = {1: 'qwertyuiop', 0: 'asdfghjkl;', 2: 'zxcvbnm,.'}
keys = {c:k for k,row in rows.iteritems() for c in row}
由于涉及大量静态数据,我不建议尝试将其全部放在一行上。首先,有一个简单的技巧可以获取第一行的:
firstRow = dict.fromkeys('qwertyuiop', 1)
那我们就可以写了
keys = {}
keys.update(dict.fromkeys('qwertyuiop', 1))
keys.update(dict.fromkeys('asdfghjkl', 2))
keys.update(dict.fromkeys('zxcvbnm,', 3))
或者,您可以尝试以下方法:
rows = {1: 'qwertyuiop', 0: 'asdfghjkl;', 2: 'zxcvbnm,.'}
keys = {c:k for k,row in rows.iteritems() for c in row}
由于涉及到大量静态数据,我不建议尝试将其全部放在一行。{c:1 for c in“qwertyuiop”}
越短越简单。{c:1 for c in“qwertyuiop”}
越短越简单。