在字典

时间:2017-03-13 07:47:26

标签: python dictionary

如何将从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

3 个答案:

答案 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))