字典中元素的打印顺序
Printing order of elements in a dictionary
字典参数应包含所有键 ['f', 'r', 'b', 'l', 't','u']
,然后才会发生以下情况。下面提到的迭代以意外的顺序打印,请更正错误。
parm = {'r':'r', 'l':'l', 't':'t', 'u':'u', 'f':'f', 'b':'b'}
if all(key in parm for key in ['f', 'r', 'b', 'l', 't','u']):
parm = [_ for _ in parm.values() for i in range(0,9)]
print (parm)
Returns:
['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 't', 't', 't', 't', 't', 't', 't', 't', 't']
预计:
['f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 't', 't', 't', 't', 't', 't', 't', 't', 't', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u',]
你的列表理解根据 parm
dict 的值的顺序生成项目(在 Python 3.6 之前这是相当随意的),所以它自然不会遵循的顺序您在 if
语句的条件中使用的键。如果您希望键以与条件中使用的键相同的方式重新排序,您应该将其作为一个单独的列表并将其用于条件和列表理解:
parm = {'r':'r', 'l':'l', 't':'t', 'u':'u', 'f':'f', 'b':'b'}
keys = ['f', 'r', 'b', 'l', 't','u']
if all(key in parm for key in keys):
parm = [parm[key] for key in keys for i in range(0,9)]
print (parm)
字典参数应包含所有键 ['f', 'r', 'b', 'l', 't','u']
,然后才会发生以下情况。下面提到的迭代以意外的顺序打印,请更正错误。
parm = {'r':'r', 'l':'l', 't':'t', 'u':'u', 'f':'f', 'b':'b'}
if all(key in parm for key in ['f', 'r', 'b', 'l', 't','u']):
parm = [_ for _ in parm.values() for i in range(0,9)]
print (parm)
Returns:
['b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 't', 't', 't', 't', 't', 't', 't', 't', 't']
预计:
['f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'f', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 't', 't', 't', 't', 't', 't', 't', 't', 't', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u', 'u',]
你的列表理解根据 parm
dict 的值的顺序生成项目(在 Python 3.6 之前这是相当随意的),所以它自然不会遵循的顺序您在 if
语句的条件中使用的键。如果您希望键以与条件中使用的键相同的方式重新排序,您应该将其作为一个单独的列表并将其用于条件和列表理解:
parm = {'r':'r', 'l':'l', 't':'t', 'u':'u', 'f':'f', 'b':'b'}
keys = ['f', 'r', 'b', 'l', 't','u']
if all(key in parm for key in keys):
parm = [parm[key] for key in keys for i in range(0,9)]
print (parm)