python从文件中形成dict
有人告诉我正确的方向如何从下面的文件中形成一个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
#文件
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,!为什么我不能这么简单:)。