Python程式:將數字字串遞增K


在Python中,數字字串是指使用數字、符號和小數點表示數值的字串,允許進行數學運算和資料處理。

在這篇文章中,我們將學習一個Python程式,用於將數字字串遞增K。

示例

假設我們已經得到一個**輸入字串列表**。我們將使用上述方法將輸入列表中的數字字串遞增k。

輸入

inputList = ["10", "hello", "8", "tutorialspoint", "12", "20"]
k = 5

輸出

['15', 'hello', '13', 'tutorialspoint', '17', '25']

在上例列表中,10、8、12、20是數字字串。因此,輸入的K值(即5)將新增到所有這些數字字串中,並列印結果字串。

10+5 = 15

8+5 = 13

12+5= 17

20+5 = 25

因此,結果列表為['15', 'hello', '13', 'tutorialspoint', '17', '25']

演算法(步驟)

以下是執行所需任務的演算法/步驟

  • 建立一個變數來儲存**輸入字串列表**並列印列表。

  • 建立一個另一個變數來儲存**輸入k**值。

  • 初始化一個空列表用於儲存結果列表。

  • 使用for迴圈遍歷輸入列表的每個元素。

  • 使用**if條件**語句和**isdigit()**函式檢查當前元素是否為數字(如果所有字元都是數字,則isdigit()方法返回True;否則,返回False)。

  • 使用**int()**函式將元素轉換為整數,然後加上k,再使用**str()**函式轉換為字串,最後使用**append()**函式將其新增到結果列表的末尾(在列表末尾新增元素)。

  • 否則,直接將當前元素新增到結果列表。

  • 將輸入列表中的數字字串遞增K後,列印結果列表。

示例1:使用for迴圈和isdigit()函式

以下程式使用for迴圈和isdigit()函式返回一個列表,該列表在輸入列表中將數字字串遞增K。

# input list of strings
inputList = ["10", "hello", "8", "tutorialspoint", "12", "20"]
# printing input list
print("Input List: ", inputList)
# input k
k = 5
# resultant list
resultantList = []
# traversing through each element of the input list
for e in inputList:
    # checking whether the current element is a digit or not
    if e.isdigit():
        # converting element to integer and adding k to it then converting
        # to string for appending it to the resultant list
        resultantList.append(str(int(e) + k))
    else:
        # else appending that element to the resultant list directly
        resultantList.append(e)
# printing resultant list
print("Incrementing numeric strings in input list by 5:\n", resultantList)

輸出

執行上述程式將生成以下輸出

Input List:  ['10', 'hello', '8', 'tutorialspoint', '12', '20']
Incrementing numeric strings in input list by 5:
 ['15', 'hello', '13', 'tutorialspoint', '17', '25']

示例2:使用列表推導式和isdigit()函式

當您希望基於現有列表的值構建新列表時,列表推導式提供了一種更短/簡潔的語法。

以下程式使用列表推導式和isdigit()函式返回一個列表,該列表在輸入列表中將數字字串遞增K。

# input list of strings
inputList = ["10", "hello", "8", "tutorialspoint", "12", "20"]
# printing input list
print("Input List: ", inputList)
# input k
k = 5
# Using list comprehension for concise syntax
resultantList = [str(int(e) + k) if e.isdigit() else e for e in inputList]
# printing resultant list
print("Incrementing numeric strings in input list by 5:\n", resultantList)

輸出

執行上述程式將生成以下輸出:

Input List:  ['10', 'hello', '8', 'tutorialspoint', '12', '20']
Incrementing numeric strings in input list by 5:
 ['15', 'hello', '13', 'tutorialspoint', '17', '25']

方法3:不使用任何內建函式

以下程式返回一個列表,在輸入列表中將數字字串遞增K,而不使用任何內建函式。

# creating a function that accepts the list element as an argument
# and checks whether it is a numeric number or not
def checkNumeric(n):
  # initializing all the digits as a string
    digitsStr = "0123456789"
    # storing the count of the number of digits in the given string 
    count = 0
    # traversing through each character of the list element
    for c in n:
        # checking whether the current character is in the digits string
        if c in digitsStr:
            # incrementing the count value by 1
            count += 1
    # checking whether the count is equal to the length of the list element
    if(count == len(n)):
        # returning true if the condition is true
        return True
    # returning False 
    return False
# input list of strings
inputList = ["10", "hello", "8", "tutorialspoint", "12", "20"]
# printing input list
print("Input List: ", inputList)
# input k
k = 5
# storing resultant list after incrementing numeric strings
resultantList = []
# traversing through each element of an input list
for e in inputList:
  # checking whether the current element is numeric or not by
  # calling checkNumeric() function
    if(checkNumeric(e)):
        # converting element to integer and adding k to it then converting
        # to string for appending it to the resultant list
        resultantList.append(str(int(e)+k))
    else:
        # else appending that element to the resultant list directly
        resultantList.append(e)
# printing resultant list
print("Incrementing numeric strings in input list by 5:\n", resultantList)

輸出

執行上述程式將生成以下輸出

Input List:  ['10', 'hello', '8', 'tutorialspoint', '12', '20']
Incrementing numeric strings in input list by 5:
 ['15', 'hello', '13', 'tutorialspoint', '17', '25']

結論

在本文中,我們學習了三種不同的方法來將數字字串遞增K。我們學習瞭如何使用isdigit()函式來確定字元是否為數字。為了確定給定字元是否為數字,我們還學習瞭如何獲取可選的迭代器並進行檢查。

更新於:2023年8月17日

405 次瀏覽

開啟您的職業生涯

完成課程後獲得認證

開始
廣告