如何将从textfile获取的值列表作为键和值
存储到字典中filename = "parameter.txt"
f=open("parameter.txt")
line=f.readlines()
for i in range (0,len(line)):
list1 = line[i].split("=")
list1=[x.strip(' ') for x in list1]
list2=list1[1].split(",")
list2=[x.strip(' ') for x in list2]
print list2
答案 0 :(得分:1)
您可以使用zip函数将两个列表组合到字典中。
一般用途
list1 = ["key1","key2","key3"]
list2 = ["value1","value2","value3"]
print(dict(zip(list1,list2)))
输出:
{'key3': 'value3', 'key2': 'value2', 'key1': 'value1'}
注意:如果您想知道为什么代码以相反的顺序返回列表;它与zip和dict的实现有关,但这将不影响代码的实现。关于字典的顺序无论如何都不会强制执行,因为在调用字典变量时,通常使用newDict ['key1']并且不引用对索引位置的引用。
您的代码具体
filename = "parameter.txt"
f=open("parameter.txt")
line=f.readlines()
for i in range (0,len(line)):
list1 = line[i].split("=")
list1=[x.strip(' ') for x in list1]
list2=list1[1].split(",")
list2=[x.strip(' ') for x in list2]
print(dict(zip(list1,list2)))
答案 1 :(得分:0)
我想你想要这个:
fn = 'parameter.txt'
with open(fn, 'r') as f:
dict1 = {}
for line in f:
list1 = line.split('=')
dict1[list1[0].strip(' ')] = list1[1].strip('\n')
print (dict1)
答案 2 :(得分:0)
以下方法可行:
filename = "parameter.txt"
f=open("parameter.txt")
line=f.readlines()
for i in range (0,len(line)):
list1 = line[i].split("=")
list1=[x.strip(' ') for x in list1]
list2=list1[1].split(",")
list2=[x.strip(' ') for x in list2]
d = {l1:l2 for l1, l2 in zip(list1, list2)}
如果您想按键对字典进行排序:
import collections
sorted_d_keys = collections.OrderedDict(sorted(d.items()))
如果要按值对字典进行排序:
import operator
sorted_d_values = sorted(d.items(), key=operator.itemgetter(0))