輸入是一個字符串,其思想是隻計算字母A-Z,並按出現次數按字母順序打印。列表理解中的Rm重複
像往常一樣我一直在這'直到我得到了一個工作結果,但現在試圖優化它,以便更好地理解Python的做事方式。
def string_lower_as_list(string):
"""
>>> string_lower_as_list('a bC')
['a', ' ', 'b', 'c']
"""
return list(string.lower())
from sys import argv
letters = [letter for letter in string_lower_as_list(argv[1])
if ord(letter) < 124 and ord(letter) > 96]
uniques = sorted(set(letters))
for let in uniques:
print let, letters.count(let)
- 如何刪除ORD(字母)的列表中理解的重複?
- 在這種情況下使用Dictionary或Tuple會有什麼好處,如果是這樣,怎麼辦?
編輯 應該說,Python 2.7版在Win32
呀,誰需要'ord'反正:)順便說一句,在OP的代碼的範圍實際上是「A」到'{'包含在內。 –
啊,所以..我沒有意識到我可以做「一個」<=字母,發現這個令人困惑的範圍('a','z')不起作用。 – Cups
@Cups:說實話,我也發現它困惑,'range('a','z')'不起作用...... –