use*_*646 1 python dictionary list
在列表中附加是可能的.但是我如何在字典中附加?
Symbols from __ctype_tab.o:
Name Value Class Type Size Line Section
__ctype |00000000| D | OBJECT|00000004| |.data
__ctype_tab |00000000| r | OBJECT|00000101| |.rodata
Symbols from _ashldi3.o:
Name Value Class Type Size Line Section
__ashldi3 |00000000| T | FUNC|00000050| |.text
Symbols from _ashrdi3.o:
Name Value Class Type Size Line Section
__ashrdi3 |00000000| T | FUNC|00000058| |.text
Symbols from _fixdfdi.o:
Name Value Class Type Size Line Section
__fixdfdi |00000000| T | FUNC|0000004c| |.text
__fixunsdfdi | | U | NOTYPE| | |*UND*
Run Code Online (Sandbox Code Playgroud)
我怎样才能创建一个字典:
dictOfTables {'__ctype_tab.o':{'__ctype': Name:...,Value:...,Class:...,Type:...,Size:...,Line:...,Section:...}} etc.
Run Code Online (Sandbox Code Playgroud)
对于上面的文字?
以与列表相同的方式追加对字典的概念没有意义.相反,在插入和删除键/值方面说话更为明智,因为没有" 结束 "附加 - 字典是无序的.
从你想要的输出,看起来你想要一个dicts dicts的词典,(即{filename : { symbol : { key:value }}
我想你可以从你的输入得到这样的东西:
import re
header_re = re.compile('Symbols from (.*):')
def read_syms(f):
"""Read list of symbols from provided iterator and return dict of values"""
d = {}
headings=None
for line in f:
line = line.strip()
if not line: return d # Finished.
if headings is None:
headings = [x.strip() for x in line.split()]
continue # First line is headings
items = [x.strip() for x in line.split("|")]
d[items[0]] = dict(zip(headings[1:], items[1:]))
return d
f=open('input.txt')
d={}
for line in f:
m=header_re.match(line)
if m:
d[m.group(1)] = read_syms(f)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
302 次 |
最近记录: |