Python:将标签分配给列表中的值

时间:2015-05-27 18:24:27

标签: python labels

我有一个带有两列的AscII文本文件,第一列是整数,第二列是单词标签,我想用标签MLKR = 348CLRD = 449.3等来定义值。

以下是我加载AscII文件的方法

with open('tops.txt') as f:
    lines = f.readlines()
    lines = [line.rstrip('\n').split('\t') for line in open('tops.txt')]

这给了我这个输出

[['348', 'MLKR'], ['449.3', 'CLRD'], ['667', 'SSPK'], ['891.2', 'MNVL'], ['992.2', 'DEIT'], ['1011', 'PEKISKO']]

现在我需要知道的是如何使用列表来分配带有值的标签

MLKR = 348
CLRD = 449.3
SSPK = 667
MNVL = 891.2
DEIT = 992.2

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

最简单,最直接的方法是使用dict comprehension

d = { label: value for value,label in lines }

print d['MLKR']

如果您希望将值作为数字而不是字符串,那么这只是一个简单的更改:

d = { label: float(value) for value,label in lines }

答案 1 :(得分:0)

您可以使用dict轻松完成此操作。获得lines中的输出后,您可以使用:

temp ={}
for x in lines:
    temp[x[1]] = x[0]

答案 2 :(得分:0)

dict = {}    
for x in lines:
        dict[x[1]] = x[0]

其中x [1]将是标签。

答案 3 :(得分:0)

创建一个字典来保存键/值对,这样每次调用MLKR时,你都会获得348,依此类推。

myDict = { k[0]:k[1] for k in lst }