如果您完成了 HireVue 編碼挑戰,您就會知道您的輸入已經存在于系統中,應該使用以下命令呼叫:
import sys (我猜)
我應該如何撰寫讀取原始輸入以找到兩個串列之間的交集的代碼?
交集只是兩個串列之間的公共值。
我的嘗試:
def intersection(lst1, lst2):
lst3 = [value for value in lst1 if value in lst2]
return lst3
問題是我不知道如何將讀取原始輸入的命令放入代碼中。
uj5u.com熱心網友回復:
只需使用集合的交集運算子:
def intersection(lst1, lst2):
return list(set(lst1) & set(lst2))
uj5u.com熱心網友回復:
如果您有import sys并且需要自己輸入,我知道的一種方法是使用sys.stdin輸入。
sys.stdin是 Python 的標準輸入流,通常使用運行程式的終端或控制臺進行輸入。但它也可以更新為使用一些不同的檔案。可能是您的代碼平臺已更新此引數以參考他們自己的輸入。
使用sys.stdin,您擁有可以幫助您從標準輸入獲取輸入的方法,例如:
sys.stdin.read(): 讀取一些字符sys.stdinsys.stdin.readline(): 讀取一行sys.stdinsys.stdin.readlines(): 讀取多行sys.stdin
要檢查其所有可用方法,請使用import sys; help(sys.stdin)Python 3。
現在,對于您所需的交集代碼,[val for val in lst1 if val in lst2]可能會按預期作業,但需要更多時間,因為in串列中的運算子會O(n)及時在 lst2 中查找您的 val,如果您使用集合,可以對其進行優化,如其他答案中所述。
我希望它有幫助。我最初打算發表評論,但現在聲望不到 50,我別無選擇,只能單獨回答你的問題。如果這里有任何不正確或不清楚的地方,請通過下面的評論告訴我,我們可能會對其進行更新。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/348942.html
下一篇:如何在顫振中顯示串列中的影像
