有沒有簡短的方法來做到這一點?將字符串集合映射到整數的pythonic方法
g_proptypes = {
'uint8' : 0
'sint8' : 1,
'uint16' : 2,
'sint16' : 3,
'uint32' : 4,
... # more strings
}
該字典是必要的,因爲我將字符串與我並需要找到相應的整數。
有沒有簡短的方法來做到這一點?將字符串集合映射到整數的pythonic方法
g_proptypes = {
'uint8' : 0
'sint8' : 1,
'uint16' : 2,
'sint16' : 3,
'uint32' : 4,
... # more strings
}
該字典是必要的,因爲我將字符串與我並需要找到相應的整數。
如果你有你的字符串可迭代,你可以這樣做:
g_proptypes = dict((string, i) for i, string in enumerate(string_list))
你能做到這一點,如果這個整數是連續的:http://codepad.org/o7ryZ09O
myList = ['uint8','sint8','uint16','sint16','uint32']
myStr = 'uint16'
myNum = myList.index(myStr);
print myNum;
如果是故意的,他被映射到字符串數組索引可能要問OP有用。 – mduvall 2011-03-09 09:21:33
是的,謝謝。 @cowboy已經寫了一個優雅的解決方案 – DhruvPathak 2011-03-09 09:23:15
>>> 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}
@Kenny:我的壞,修復。 – 2011-03-09 09:29:08
我查過了。它給出{0:'uint8',1:'sint8'...}。我需要相反的。 – Manish 2011-03-09 09:30:24
@Manish:我剛剛修好了,現在應該可以工作。 – 2011-03-09 09:31:15