我在將字符映射到字典時遇到了一些問題。我所去的是創建使用映射和範圍映射ascii字符的字典
counter = { '!': 0, '"': 0, '#': 0, '$': 0 } ...
對於小數的所有ASCII字符範圍
range(33,64) range(91,96) and range(123,126)
一段時間後,我發現,地圖可能被用來傳遞CHR的功能和名單從返回範圍迭代...
symbolMap = map(chr, range(33,64) + range (91,96) + range(123,126))
的問題是,這個地圖不corrospond到ASCII表,當我嘗試
事情變得更糟糕counter = dict.fromkeys(symbolMap, 0)
看到我的shell會話:
>>> counter
{'!': 0, '#': 0, '"': 0, '%': 0, '$': 0, "'": 0, '&': 0, ')': 0, '(': 0, '+': 0, '*': 0, '-': 0, ',': 0, '/': 0, '.': 0, '1': 0, '0': 0, '3': 0, '2': 0, '5': 0, '4': 0, '7': 0, '6': 0, '9': 0, '8': 0, ';': 0, ':': 0, '=': 0, '<': 0, '?': 0, '>': 0, '[': 0, ']': 0, '\\': 0, '_': 0, '^': 0, '{': 0, '}': 0, '|': 0}
>>> chr(34)
'"'
>>> range(33,64)
[33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63]
>>> symbolMap
['!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '[', '\\', ']', '^', '_', '{', '|', '}']
有人能向我解釋如何解決這一問題,以便它正確地映射出來。
我想我沒有讀好你的問題,因爲我不知道你的問題是什麼。您發佈的代碼顯示您所需的輸出。你是否因爲命令不正確而被拋出? `字典沒有秩序。 – aaronasterling 2011-01-07 07:05:37
「計數器」中包含的內容不應該是什麼? 「計數器」中應該包含哪些不是? – 2011-01-07 08:27:24
如果您想要的代碼應該是數字和標點符號,請查看string.punctuation和string.digits。 – 2011-01-07 18:01:24