我是計算機科學的新手,并且真的堅持這個問題,所以任何幫助都會很棒:)。
首先,我得到了以下全域變數:
ARROWS = ‘<>^v’
這個想法是創建一個接收字串和整數 (n) 的函式。然后,該函式應將前 n 個字符替換為“X”。到目前為止,這很容易,但是問題是只有當字符是全域變數 ARROWS 的一部分時才應該替換字符。如果不是,則不應對其進行修改,但仍算作 n 個數字之一。下面舉例說明需要做的事情:
>>>function(‘>>.<>>...’, 4)
‘XX.X>>...’
>>>function(‘>..>..>’, 6)
‘X..X..>’
>>>function(‘..>>>.’, 2)
‘..>>>.’
請幫忙 :)
uj5u.com熱心網友回復:
嗨,在我看來(如果您想避免使用庫)您可以遍歷字串中的字符并進行比較以確定是否需要更改字符。這是一些應該對您有所幫助的示例代碼。
ARROWS = '<>^v'
def replace_up_to(in_str, n):
# store the new character in this list
result = []
for i, char in enumerate(in_str):
# decide if we need to change the char
if i < n and char in ARROWS:
result.append("X")
continue
result.append(char)
# return a new string from our result list
return "".join(result)
uj5u.com熱心網友回復:
解決方案非常簡單。希望這可以幫助。:)
ARROWS = "<>^v"
arrows_set = set(ARROWS)
def function(word, n):
newWord = ""
for i in range(0, len(word)):
if word[i] in arrows_set and i < n:
newWord = 'X'
else:
newWord = word[i]
return newWord
print(function(">>.<>>...", 4))
print(function(">..>..>", 6))
uj5u.com熱心網友回復:
您可以使用該re模塊來匹配一組正則運算式箭頭。
import re
txt_to_replace = "aa^aaa<>aaa>"
x= re.sub(r'[<>^v]', 'X', txt_to_replace ,3 )
# x is now aaXaaaXXaaa>
uj5u.com熱心網友回復:
您可以使用re.sub()替換 中的任何字符ARROW。
要將其限制為輸入字串的前 N ??個字符,請對切片執行替換并將其與輸入字串的其余部分連接。
import re
def replace_arrow(string, limit):
arrows_regex = r'[<>^v]'
first_n = string[:limit]
rest = string[limit:]
return re.sub(arrows_regex, 'X', first_n) rest
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/518598.html
上一篇:如何對嵌套字典進行子集化
下一篇:在python中使用遞回求和矩陣
