簡體   English   中英

Python 使用循環列表調用 function

[英]Python call function with list from loop

我有一個 function getloantype(account_no)我想打電話。 帳號在列表['10101-2','10101-2', '10101-3'] ,我希望 function 逐個運行所有帳號並將所有結果放入另一個列表. 但是,我似乎無法讓我的代碼運行。

我做什么:首先,我讓用戶輸入他的用戶 ID,並使用它從 SQL 數據庫中獲取他擁有的所有銀行賬戶:

userid = input("Please enter user id")

conn=create_connection()
def getacct(userid): 
    query = """\
        select Account_Number
        from User_Account
        where UserID = '{}'
        """ .format(userid)

    return (execute_read_query (conn, query))

account_no = getacct(userid)

因此,帳號最終會出現在列表 [account_no] 中。 接下來,我需要使用帳號來獲取他的貸款 ID。 第一個問題由此而來。 我是否應該將其編碼為getloanid(account_no)getloanid(x)其中 x for x in account_no

def getloanid(x): 
    query = """\
        select SUBSTRING(LoanID, 1, 2)
        from Account_Delinquency
        where Account_Number = '{}'
        """ .format(account_no)

    return (execute_read_query (conn, query))

從這里開始,我假設我應該做一個嵌套的 for 循環,但是按照我的編碼方式,列表仍然是空的。

loanlist = []

for i in account_no:
    for x in i:
        getloanid(x)
        loanlist.append(i[0])

我也試過這個會返回錯誤:

'NoneType' object 不可迭代

mylist = []
loanlist = []

for i in account_no:
    mylist.append(i[0])


for x in mylist:
    a = getloanid(x)
    for i in a:
        loanlist.append(i[0])

如何對其進行編碼,以便我可以使用列表account_no = getacct(userid)中的所有帳號調用 function getloantype(account_no)並將所有結果附加到新列表 [loanlist] 中?

您的程序的結構以及從函數返回的數據不是很清楚,但如果我能理解,一個可能的簡單解決方案可能是這樣的:

result_list = [getloantype(account_no) for account_no in account_list]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM