Python 向函式傳遞列表

2022-01-30 17:01:45 字數 2873 閱讀 9340

在實際使用中你會發現,向函式傳遞列表是比較實用的,這種列表可能包含名字、數字、可能更複雜的物件(字典)

假設向乙個函式傳遞一堆水果,我們說出我們喜歡所有的水果

def

obj(fruits):

for fruit in

fruits:

msg = '

i like

'+fruit+'!'

print

(msg)

l = ['

','orange']

obj(l)

我們將obj定義成接受乙個水果種類列表,並將其儲存在形參obj中,這個函式遍歷接受到的列表,然後列印'i like ..!'

#

首先定義乙個列表,其中包含要列印的字母

letters = ['

a','

b','

c','d'

]already_letter =

#模擬閱讀每個字母,直到字母讀取完畢為止

#將每個已經閱讀過的字母轉移到列表already_letter中

while

letters:

current_letter =letters.pop()

print("

printing letter:

"+current_letter)

#顯示已經讀取的所有字母

print("

\nthe follwing letter has been read:")

for letter in

already_letter:

print(letter)

我們首先需要建立乙個列表,還建立乙個名為already_letter的空列表,每個已經閱讀過的字母都儲存到這個列表中,只要列表中還有字母,while迴圈就模擬閱讀過程:從該列表中刪除乙個已經讀取的字母,然後將其儲存到變數current_letter中,並顯示一條訊息,再將該字母儲存到新列表中,等到迴圈結束後,再列印出所有的字母。

上述程式改編版

def

read_letter(letters,already_letter):

"""讀取每個字母,直到讀取完畢為止

將讀取完畢後的字母儲存到新的列表中

:param letters:

:param already_letter:

:return:

"""while

letters:

current_letter =letters.pop()

#模擬讀取字母的過程

print("

printing letter:

" +current_letter)

defshow_already_letter(already_letter):

"""顯示已經閱讀的所有字母

:param already_letter:

:return:

"""print("

\nthe follwing letters has been read:")

for letter in

already_letter:

print

(letter)

letters = ['

a','

b','

c','d'

]already_letter=

read_letter(letters,already_letter)

show_already_letter(already_letter)

我們定義了函式read_letter(),它包含2個形參:乙個需要閱讀字母的列表和乙個儲存已經閱讀字母的列表。給定這兩個列表,這個函式模擬閱讀過程:將字母乙個個閱讀,然後列印,最後將其轉存到儲存已閱讀的列表中,函式show_already_letter()主要是列印已經閱讀字母列表,最後四條語句是定義乙個列表與乙個空列表,呼叫上面的兩個函式。

上面的函式中,在讀取完畢之後,letters列表就程式設計空列表了,那麼假如我們想在讀取完列表後還保留該列表,該怎麼辦呢?

使用切片法[ : ]建立列表的副本

def

read_letter(letters,already_letter):

"""讀取每個字母,直到讀取完畢為止

將讀取完畢後的字母儲存到新的列表中

:param letters:

:param already_letter:

:return:

"""while

letters:

current_letter =letters.pop()

#模擬讀取字母的過程

print("

printing letter:

" +current_letter)

defshow_already_letter(already_letter):

"""顯示已經閱讀的所有字母

:param already_letter:

:return:

"""print("

\nthe follwing letters has been read:")

for letter in

already_letter:

print

(letter)

letters = ['

a','

b','

c','d'

]already_letter=

read_letter(letters[:],already_letter)

show_already_letter(already_letter)

print(letters)

通過這段**的列印結果可以看出,列表已經被複製了哦!

Python 向函式傳遞任意數量的實參

傳遞任意數量的實參 有時候,你預先不知道函式需要接受多少個實參,好在python允許函式從呼叫語句中收集任意數量的實參 def get letter letters for i in letters print i get letter a b c d e 形參名 letters中的星號讓pytho...

C 向函式傳遞物件

物件可以作為引數傳遞給函式,其方法與傳遞其他型別的資料相同。在向函式傳遞物件時,是通過傳值呼叫傳遞給函式的。因此,函式中對物件的任何修改均不影響呼叫該函式的物件本身。例3.11 使用物件作為函式引數。includeclass aclass void set int n int get private...

Python向列表中插入元素 列表

python列表中的元素種類可以是相同的也可以是不同的,如 num 1 2 3 4 str python 1 中國 nmu 1 2 3 4 str python 1 中國 phone 諾基亞 三星 oppo 華為 print phone 諾基亞 三星 oppo 華為 2 extend 在列表末尾新增...