如何检查字典中的所有行,同时检查之前或之后的1行?
遍历项目时,由于参考[key +/- 1],因此我在当前方法中会出错。我通常会找到黑客解决方案,但想知道您是否有更好的技术。
最后,字典是无序的,所以我不确定这是否合适。
sample_dict = {0: None,
1: 'red',
2: 42,
3: None,
4: None,
5: 'lava',
6: None,
7: None,
8: 'cats',
9: 'pony',
10: None}
desired_dict = {}
for key, value in sample_dict.items():
if value is not None and sample_dict[key + 1] is not None:
print(key, value)
desired_dict[key] = value
答案 0 :(得分:1)
如果您的最后一个密钥不是“ None”(无),则也应该对其进行测试。
for key, value in sample_dict.items():
next_key = key + 1
if (next_key <= len(sample_dict)):
if value is not None and sample_dict[next_key] is not None: # Error
print(key, value)
desired_dict[key] = value
答案 1 :(得分:1)
字典维护的唯一顺序是将键添加到字典的顺序,因此字典上唯一的“之后”含义是在这之后添加的“键”。
由于顺序很重要,并且所有键都是整数,所以ou应该使用列表-并且有一个definitie并清除“ after”,即使插入值也很有意义。
这就是我要做的:
sample_data= [None, 'red', 42,None,None,
'lava', None, None, 'cats',
'pony', None]
desired = {}
for index, value in enumerate(sample_data):
if index < len(sample_data) and \
value is not None and \
sample_data[index + 1] is not None:
print(key, value)
desired_dict[index] = value