python从文件中形成dict

python从文件中形成dict,python,dictionary,Python,Dictionary,有人告诉我正确的方向如何从下面的文件中形成一个dict吗 #文件 00688值\u disg test4 00689数值测试4 0068A值测试3 0068B数值测试2 0068F值测试1 00690数值测试1 我需要的是从第3列生成一个dict,其中包含第1列和第2列的值 示例: test1 = [0068F value_disg, 0068F value_disg] <br> test2 = [0068B value_disg] <br> test

有人告诉我正确的方向如何从下面的文件中形成一个dict吗
#文件

00688值\u disg test4
00689数值测试4
0068A值测试3
0068B数值测试2
0068F值测试1
00690数值测试1
我需要的是从第3列生成一个dict,其中包含第1列和第2列的值
示例:

test1 = [0068F    value_disg, 0068F    value_disg] <br>
test2 = [0068B    value_disg] <br>
test4 = [ 00688    value_disg, 00689    value_disg] <br>
...
test1=[0068F值,0068F值]
test2=[0068B值\u disg]
test4=[00688值,00689值]
...

这里,你有没有


在这里,did ur hw

当前,您每次都会覆盖字典,因为您需要附加到结果中:

output = dict()
with open('Odata.txt', 'r') as infile: # open file
    for line in infile: # reading line by line
        values = line.strip().split() # splitting the line as list
        if values[2] not in output.keys():
             output[values[2]] = [' '.join(values[:2])] # create the list first time 
        else:
             output[values[2]].append(' '.join(values[:2])) # append to the list

    print(output)
输出:

{'test4': ['00688 value_disg', '00689 value_disg'], 'test3': ['0068A value_disg'], 'test2': ['0068B value_disg'], 'test1': ['0068F value_disg', '00690 value_disg']}
您可以使用
setdefault()
if-else
插入一行:

output = dict()
with open('Odata.txt', 'r') as infile: # open file
    for line in infile: # reading line by line
        values = line.strip().split() # splitting the line as list
        output.setdefault(values[2], []).append(' '.join(values[:2])) # update the dictionary

当前,每次需要追加到结果中时,都会覆盖字典:

output = dict()
with open('Odata.txt', 'r') as infile: # open file
    for line in infile: # reading line by line
        values = line.strip().split() # splitting the line as list
        if values[2] not in output.keys():
             output[values[2]] = [' '.join(values[:2])] # create the list first time 
        else:
             output[values[2]].append(' '.join(values[:2])) # append to the list

    print(output)
输出:

{'test4': ['00688 value_disg', '00689 value_disg'], 'test3': ['0068A value_disg'], 'test2': ['0068B value_disg'], 'test1': ['0068F value_disg', '00690 value_disg']}
您可以使用
setdefault()
if-else
插入一行:

output = dict()
with open('Odata.txt', 'r') as infile: # open file
    for line in infile: # reading line by line
        values = line.strip().split() # splitting the line as list
        output.setdefault(values[2], []).append(' '.join(values[:2])) # update the dictionary

你试过什么了吗?你能展示一下到目前为止你试过什么吗?您需要逐行读取文件,然后在拆分行中的值后准备字典。我设法使用第1列(它的唯一值)创建了字典,但难以从第3列以最佳方式创建。file='test.txt'results={}打开(文件,'r')为f:lines=f.read(),用于line-in-line.split('\n'):line=re.split('\s+',line)results[line[0]]=[line[1:]]print(results)您尝试了什么吗?您能展示一下到目前为止您尝试了什么吗?您需要逐行读取文件,然后在拆分行中的值后准备字典。我设法使用第1列(它的唯一值)创建了字典,但难以从第3列以最佳方式创建。file='test.txt'results={}打开(文件,'r')为f:lines=f.read(),用于line-in-line.split('\n'):line=re.split('\s+',line)结果[line[0]]=[line[1:]]打印(结果)谢谢GQV,!为什么我不能这么简单:)。谢谢GQV,!为什么我不能这么简单:)。