大家好我有一個python問題。如何只打印一次字符串中的每個字母
我試圖打印給定字符串中的每個字母只有一次。 如何使用for循環執行此操作並對從a到z的字母進行排序?
繼承人我有;
import string
sentence_str = ("No punctuation should be attached to a word in your list,
e.g., end. Not a correct word, but end is.")
letter_str = sentence_str
letter_str = letter_str.lower()
badchar_str = string.punctuation + string.whitespace
Alist = []
for i in badchar_str:
letter_str = letter_str.replace(i,'')
letter_str = list(letter_str)
letter_str.sort()
for i in letter_str:
Alist.append(i)
print(Alist))
答案我得到:
['a']
['a', 'a']
['a', 'a', 'a']
['a', 'a', 'a', 'a']
['a', 'a', 'a', 'a', 'a']
['a', 'a', 'a', 'a', 'a', 'b']
['a', 'a', 'a', 'a', 'a', 'b', 'b']
['a', 'a', 'a', 'a', 'a', 'b', 'b', 'c']....
我需要:
['a', 'b', 'c', 'd', 'e', 'g', 'h', 'i', 'l', 'n', 'o', 'p', 'r', 's', 't', 'u', 'w', 'y']
沒有錯誤...
你可以獲益適合從設置的數據結構http://docs.python.org/2/tutorial/datastructures.html#sets - 它看起來像你打印了很多比你應該更多(見縮進) – 2013-03-03 22:33:06
'print(sorted) (set(sentence_str.lower())))' – jfs 2013-03-03 22:38:54
@JF塞巴斯蒂安 - 很好,但它仍然包含標點符號... – 2013-03-03 22:45:05