pythonic方法将字符串集映射到整数

时间:2011-03-09 09:15:04

标签: python

有更短的方法吗?

g_proptypes = {
    'uint8' : 0
    'sint8' : 1,
    'uint16' : 2,
    'sint16' : 3,
    'uint32' : 4,
... # more strings
}

dict是必要的,因为我将拥有该字符串并需要找到相应的整数。

3 个答案:

答案 0 :(得分:6)

如果你的字符串是可迭代的,你可以这样做:

g_proptypes = dict((string, i) for i, string in enumerate(string_list))

答案 1 :(得分:1)

>>> lst = ['uint8','sint8','unit16','sint16','uint32','etc']

>>> g_proptypes = dict(map(reversed,enumerate(lst)))

>>> g_proptypes

{'sint16': 3, 'unit16': 2, 'uint8': 0, 'etc': 5, 'sint8': 1, 'uint32': 4}

答案 2 :(得分:0)

如果整数是连续的,你可以这样做:http://codepad.org/o7ryZ09O

myList = ['uint8','sint8','uint16','sint16','uint32']
myStr = 'uint16'
myNum = myList.index(myStr);
print myNum;