我有个口述
my_dict =
{ '123@com' : [ { 'event': 'event1', 'oldval' = 1, 'newval = 2}, { 'event': 'event2', 'oldval' = 11, 'newval': 22}, { 'event': 'event3', 'oldval' = 33, 'newval': 44}]
{'1234@com' : { 'event1': 'oldval': 45, 'newval': 66},
{'12345@com': [ {'event':'event2', 'oldval': 77, 'newval': 99}, { 'event': 'event3', 'oldval': '99', 'newval': 100'}]
所以基本上我的目标是建立一个列表
[ ['123@com', (2,1,True), (22,11, True), (44,33,True)], ['1234@com', (66,45,True), ('','',False),('','',False)], ['12345@com', ('',''False), (99,77,True), (100,99)]]
因此,我的目标是在事件发生更改时获取值,并将其标记为true。你知道吗
所以我写的代码如下:
for key,value in my_dict.items():
if str(my_dict).find('event1') >- 1 or str(my_dict).find('even2') > 1 or str(my_dict).find('event3') > -1:
tmp_list = []
tmp_list.append(key)
if type(value) is dict:
if value['event'] == 'event1':
@ get all the value and append to tmp_list
if value['event'] == 'event2':
@ do the same thing as above
else:
for val in value:
if val['name'] == 'event':
@ do the same stuff.
@do the same stuff again for rest of event.
所以基本上我可以通过遵循上面的代码模式来实现我的目标。你知道吗
所以任何人都可以帮助我更好地编码,我会非常感激。 我不喜欢我编码的方式。你知道吗
谢谢
这是我能想到的最好的编码方式。你知道吗
拥有像
['123@com', (2,1,True), (22,11, True), (44,33,True)]
这样的异构列表是一种代码味道。这几乎总是意味着您试图对简单的数据类型做太多的工作,而实际使用类可能会更好。假设python 2.x:这与您给出的示例并不完全相同,但是如果不了解您的具体用例,就很难给出准确的答案。以上这些应该足以让你开始。你知道吗
相关问题 更多 >
编程相关推荐