我想按如下方式实施列表:
hash_dict={
'session':{'Hash_path':[],'Hex_hash':[]},
'meta':{'Hash_path':[],'Hex_hash':[]},
'packet':{'Hash_path':[],'Hex_hash':[]}
}
我有一个包含大量数据的列表hash_list,但我想要三种类型的值:session,meta和packet,并希望将上面字典中的值作为列表。
这是否可行,如上所述。 任何帮助表示赞赏。
for i in range(len(hash_list)):
if 'sessiondb' in hash_list[i]:
hash_dict['session']['Hash_path'][i].append(hash_list[i].split(" ")[0].split("=")[1])
hash_dict['session']['Hex_hash'][i].append(hash_list[i].split(" ")[9].split("=")[1])
for i in range(len(hash_list)):
if 'metadb' in hash_list[i]:
hash_dict['metadb']['Hash_path'][i].append(hash_list[i].split(" ")[0].split("=")[1])
hash_dict['metadb']['Hex_hash'][i].append(hash_list[i].split(" ")[9].split("=")[1])
for i in range(len(hash_list)):
if 'packetdb' in hash_list[i]:
hash_dict['packetdb']['Hash_path'][i].append(hash_list[i].split(" ")[0].split("=")[1])
hash_dict['packetdb']['Hex_hash'][i].append(hash_list[i].split(" ")[9].split("=")[1])
上面的代码显示了我想要在Dictionary中列出的值作为上面定义的列表。 我试过,但我收到错误:“列表索引超出范围”
提前完成。
答案 0 :(得分:1)
首先定义字典:
hash_dict = {
'session': {'Hash_path': [], 'Hex_hash': []},
'meta': {'Hash_path': [], 'Hex_hash': []},
'packet': {'Hash_path': [], 'Hex_hash': []}
}
并直接在您的列表上循环:
for entry in hash_list:
elems = entry.split()
path = elems[0].split('=', 1)[-1]
hash = elems[9].split('=', 1)[-1]
if 'sessiondb' in entry:
hash_dict['session']['Hash_path'].append(path)
hash_dict['session']['Hex_path'].append(hash)
if 'metadb' in entry:
hash_dict['meta']['Hash_path'].append(path)
hash_dict['meta']['Hex_path'].append(hash)
if 'packetdb' in entry:
hash_dict['packet']['Hash_path'].append(path)
hash_dict['packet']['Hex_path'].append(hash)
假设所有三个选项都可以每个条目。
如果我们知道您的hash_list
数据通常是什么样子,那么很有可能会进一步清理。