Par*_*gue 1 python performance dictionary
我想创建一个字典,使得QWERTY键盘第一行中的字母值为1,主页行中的键值为零,底行中的键值为2.
我想这样做是一行,但我想不出办法做到这一点.
我知道这会做第一行,但有没有办法让所有行都在一行中?
firstRow = {i:1 for i in "q w e r t y u i o p".split(' ')}
Run Code Online (Sandbox Code Playgroud)
编辑,我想到了这个:
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())
Run Code Online (Sandbox Code Playgroud)
但我正在寻找更简单的东西.
好吧,首先,有这个巧妙的技巧来获得firstRow:
firstRow = dict.fromkeys('qwertyuiop', 1)
Run Code Online (Sandbox Code Playgroud)
然后我们就可以写了
keys = {}
keys.update(dict.fromkeys('qwertyuiop', 1))
keys.update(dict.fromkeys('asdfghjkl', 2))
keys.update(dict.fromkeys('zxcvbnm,', 3))
Run Code Online (Sandbox Code Playgroud)
或者,您可以尝试这样的事情:
rows = {1: 'qwertyuiop', 0: 'asdfghjkl;', 2: 'zxcvbnm,.'}
keys = {c:k for k,row in rows.iteritems() for c in row}
Run Code Online (Sandbox Code Playgroud)
由于涉及的静态数据量很大,我不建议尝试将其全部放在一行上.
| 归档时间: |
|
| 查看次数: |
91 次 |
| 最近记录: |