2016-10-16 48 views
0

我希望能夠使用函數將多個項添加到我的代碼中。但我希望能夠添加一個單獨的項目,或者不添加任何項目。這裏是例子。Python 2.7:在函數中添加2個列表項

listX = ["a", "b", "c"] 

def addList(add): 
    if add != "null": 
     listX.append(add) 

addList("d") 

在最後添加d。簡單。

print listX 

addList("e" + "f") 

print listX 

現在是[ 'A', 'B', 'C', 'd', 'EF']。 我希望它是['a','b','c','d','e',f]。此外,我也只想添加一個項目(添加)一個參數。

我該怎麼做?請幫忙。和往常一樣,提前感謝。

+0

列表項總是單個字符? – ettanany

+0

傳遞一個列表到你的函數中,比如'add_list = [「e」,「f」]',並使用列表添加如:'listX + = add_list' – mitoRibo

回答

0

你的函數addList預計只有1個說法,當你說

addList("e" + "f") # it passes it as addList("ef") 

解決你的問題簡單地使用*獲得多個參數,並extend添加到很容易:

listX = ['a', 'b', 'c'] 

def addList(*args): 
    listX.extend(args) 

addList('d', 'e', 'f') 
print (listX) 

回報:

['a', 'b', 'c', 'd', 'e', 'f'] 
+0

如果我有多個參數會怎樣?例如: – m1ksu

+0

gosh darnit爲什麼它會輸入?例如:def addList(remove,add) – m1ksu

+0

'*'有助於獲取多個參數,但是如果你做了'addList(remove,* add)',那麼第一個也是唯一的參數將被用於刪除,而其他所有的參數都將被刪除add add,所以addList(3,4,5,6,7)',這裏3將是remove變量,所有其他將被打包添加。 –

1

問題是打破你在那裏的'e' + 'f'事情。

只要你的參數是一個interable,這應該工作

def addList(iterable): 
    for item in iterable: 
     listX.append(item) 
+0

你可以簡單地使用'extend'來代替循環。 –

+0

@ SSj.Luffy No.我循環的原因是分解OP在他的例子中顯示的'e'+'f'的事情。 –

相關問題