嘗試使用 zip() 將單詞組合在一起,但想知道為什么下面的代碼會導致不同的結果?
1)
def concatenate(L1,L2,connector):
for (word1,word2) in zip(L1,L2):
return [word1 connector word2]
concatenate(['A','B'],['a','b'],'-')
期待,['A-a','B-b']但我得到:['A-a']只有
2)
def concatenate(L1,L2,connector):
return [word1 connector word2 for (word1,word2) in zip(L1,L2)]
我有: ['A-a', 'B-b']
uj5u.com熱心網友回復:
return退出函式。如果你想回傳多個值,你可以使用yield,盡管它可能對你的目的來說太過分了:
def concatenate(L1, L2, connector):
for word1, word2 in zip(L1, L2):
yield word1 connector word2
list(concatenate(['A','B'], ['a','b'], '-')) # -> ['A-a', 'B-b']
請注意,您需要添加list()函式呼叫以實際獲取串列。
uj5u.com熱心網友回復:
我會試著回答這個問題。代碼只回傳第一次迭代。
def concatenate(L1,L2,connector):
merge=[]
for (word1,word2) in zip(L1,L2):
merge=merge [word1 connector word2]
return(merge)
print(concatenate(['A','B'],['a','b'],'-'))
并且此代碼將運行所有迭代
def concatenate(L1,L2,connector):
return [word1 connector word2 for (word1,word2) in zip(L1,L2)]
print(concatenate(['A','B'],['a','b'],'-'))
在第一個代碼中,我只是在某個陣列中添加最后一個字串并回傳變數
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/344551.html
