親愛的,
如何根據某些條件從字串中洗掉字符?知道我有一個字串需要:
- STEP 01 : 洗掉元音
- STEP 02 : 洗掉重復的輔音并保留第一個出現的輔音。
- 步驟 03:如果字串以給定字母開頭/結尾,則洗掉第一個和最后一個字符。
示例:單詞:Transmuted
Step01 之后(洗掉元音)=> Trnsmtd Step02 之后(洗掉重復的輔音,這里是“2nd t”,“2nd n”,“2nd s”)==> Trnsmd Step03 之后(如果單詞以開頭或結尾,則洗掉第一個和最后一個字符“t”和“d”=> rnsm
這是我的第一部分 python Script ,需要剩下的 2 個步驟:
string = "Transmuted"
vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
result = ""
for i in range(len(string)):
if string[i] not in vowels:
result = result string[i]
print("\nAfter removing Vowels: ", result)
輸出:洗掉元音后:Trnsmtd
uj5u.com熱心網友回復:
這是步驟 01 的另一個版本:
word = 'THERMOCHEMISTRY'
vowels={'a','e','i','o','u'}
result = ''.join([letter for letter in word if letter.lower() not in vowels])
對于第 02 步,您可以這樣做(可能有更有效的方法,但這可行):
result2 = ""
for i in result:
if i.lower() not in result2 and i.upper() not in result2:
result2 = i
對于步驟 03
filter_out = {'d','t'}
result3 = result2[1:] if result2[0].lower() in filter_out else result2
result3 = result3[:-1] if result3[-1].lower() in filter_out else result3
print(result ' ' result2 ' ' result3)
# THRMCHMSTRY THRMCSY HRMCSY
uj5u.com熱心網友回復:
如果您想要逐步解決方案,請查看以下代碼:
string_ = "Transmuted"
vowels_ = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
states_ = set()
filter_ = {'T', 'D'}
result_step1 = ""
for i in range(len(string_)):
if string_[i] not in vowels_:
result_step1 = result_step1 string_[i]
print("\nAfter removing Vowels: ", result_step1)
result_step2 = ""
for i in range(len(result_step1)):
if result_step1[i].upper() not in states_:
result_step2 = result_step1[i]
states_.add(result_step1[i].upper())
print("\nAfter removing Duplicate: ", result_step2)
start_ = 0 if result_step2[0].upper() not in filter_ else 1
end_ = len(result_step2)-1 if result_step2[0].upper() not in filter_ else len(result_step2)-2
result_step3 = result_step2[start_:end_]
print("\nAfter removing 1st and Last Char: ", result_step3)
輸出:
After removing Vowels: Trnsmtd
After removing Duplicate: Trnsmd
After removing 1st and Last Char: rnsm
如果你想要最終結果,你可以參考@Swifty 代碼或者這個:
string_ = "Transmuted"
vowels_ = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
states_ = {chr(i):0 for i in range(65, 91)}
result = ""
for i in range(len(string_)):
if string_[i] not in vowels_:
if states_[string_[i].upper()] < 1:
result = result string_[i]
states_[string_[i].upper()] = 1
print("\nAfter removing Vowels: ", result[1:len(result)-1])
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/524447.html
