正如標題所說,我正在將標記元素分為兩個列表。我目前的代碼是:
lst = [("foo", "good"), ("bar", "bad")...("x", "n")]
def sort(items):
good = []
bad = []
for i in range(len(items)):
if items[i][1] == 'good':
good += items[i][0]
else:
bad += items[i][0]
return good, bad
alpha, beta = sort(lst)
我的輸出很簡單f
。我一直在努力解決這個問題,但解決方案一直困擾著我。有什麼建議?
謝謝你們。
您可以嘗試使用list comprenhension
計算兩個列表以更清晰的方式解決此問題:
def sort(items):
good = [items[idx][0] for idx in range(0,len(items)) if items[idx][1] == 'good']
bad = [items[idx][0] for idx in range(0,len(items)) if items[idx][1] == 'bad']
return good, bad
如果性能不是問題,這可能會更好,因為它是一種聲明式方法而不是命令式方法,因此它可能更容易閱讀,但考慮到它會迭代列表兩次。
希望對你有幫助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句