[英]Python - Entering an Unspecified Amount of Arguments in a Function
我基本上有這個輸入,我想使用 function 將其拆分為不同的變量,但問題是有些我想拆分為 2 個變量,有些是 3 個等。例如:
day, month, year = input("Birthday: ").split(",")
在這段代碼中,您將輸入類似“1, January, 2000”的內容,它將日、月和年排序為不同的變量,即“日”、“月”和“年”。 但是,我希望有一個選項可以在字符串為空時不發生“拆分”。 所以,我決定做一個 function 這樣做。
對於 function 部分,我有如下內容。
def splitText(input, thing1, thing2, thing3):
if input != "":
thing1, thing2, thing3 = input.split(",")
bDay = input("Birthday: ")
splitText(bDay, day, month, year)
但是這段代碼有一個問題,只有 3 個“東西”可以輸入到 arguments 中。 我希望它是可變的,您可以將 2、3、4、任意數量的 arguments 放入 function。 我嘗試過使用“*args”,但我只是不太確定如何使它適用於我的代碼的 rest 等等。
任何幫助將不勝感激,無論是解決這個問題還是只是以更有效的方式完成目標:D
使用它,您可以解壓縮包含 n 個單詞的字符串。
bDay = input("Birthday: ")
*a_lst, = bDay.split(',')
#Birthday: 15,july,2000
#['15', 'july', '2000']
我不會使用變量,而是使用可以動態為其分配鍵和值的字典。
def splitText(a_lst):
lst = ['day','month','year']
d = {}
for i in range(len(a_lst)):
for j in range(len(lst)):
if i == j :
d[lst[j]] = a_lst[i]
return d
print(splitText(a_lst))
#Birthday: 15,july,2000
#{'day': '15', 'month': 'july', 'year': '2000'}
#Birthday: 28
#{'day': '28'}
您可以使用 *args 來獲取多個參數
def my_func(parameter1, parameter2, parameter3, *args): # *args takes infinite parameters
print("Parameter1:", parameter1) # Printing parameter 1-3
print("Parameter2:", parameter2)
print("Parameter3:", parameter3)
for argument in args: # For ever argument in our *args
print('Argument:', argument) # Print the argument
my_func('a', 'b', 'c', 'd', 'e', 'f')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.