我的目的是將輸入作為字串,并按字母順序回傳該字串的小寫字母串列,沒有重復,沒有標點符號。例如,輸入“快樂!” 會得到 ['a','h','p','y']。我嘗試使用 join 函式來擺脫我的標點符號,但不知何故它不起作用。有人知道為什么嗎?另外, sort.() 可以對字母排序嗎?我是否以正確的方式使用它?謝謝!
def split(a):
a.lower()
return [char for char in a]
def f(a):
i=split(a)
s=set(i)
l=list(s)
v=l.join(u for u in l if u not in ("?", ".", ";", ":", "!"))
v.sort()
return v
uj5u.com熱心網友回復:
.join()是一個字串方法,但在串列上使用,因此代碼引發例外,但join在這里并不真正需要。
你在正確的軌道上set()。它只存盤唯一的專案,因此創建一組輸入并用小寫字母計算交集(&)。對結果進行排序:
>>> import string
>>> s = 'Happy!'
>>> sorted(set(s.lower()) & set(string.ascii_lowercase))
['a', 'h', 'p', 'y']
uj5u.com熱心網友回復:
你可以使用:
def f(a):
return sorted(set(a.lower().strip('?.;:!')))
>>> f('Happy!')
['a', 'h', 'p', 'y']
uj5u.com熱心網友回復:
您也可以為此使用正則運算式:
pattern = re.compile(r'[^a-z]')
string = 'Hello@ W0rld!!#@'
print(sorted(set(pattern.sub('', string))))
輸出:
['d', 'e', 'l', 'o', 'r']
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/337167.html
上一篇:Oracle進行一對一連接
