[英]Trying to return relevant information from a list of lists based on user input
[英]Return lists from a list of lists when given an input value
我已經在這個問題上堅持了一段時間,但似乎無法找到解決方案,因此我請求幫助。 PS:編程還是有點新鮮
我在列表中有列表:
[(2012, 'january', 'monday'), (2012, 'february', 'monday'), (2012, 'january', 'tuesday')]
我想要的是一個帶有列表的新列表,當輸入“monday”時:
[(2012, 'january', 'monday'), (2012, 'february', 'monday')]
到目前為止我的代碼:
lists = [(2012, 'january', 'monday'), (2012, 'february', 'monday'), (2012, 'january', 'tuesday')]
day = input("Give day: ") #monday
def select_monday(lists, day):
list2 = []
for list in lists:
if list[2] == day: #from here I'm stuck and do not know how to continue
list2.append(list[2])
else:
return None
return list2
結果: None
我不知道如何獲得具有特定值的所有列表
你的代碼很好,除了你不需要else
語句,因為否則在下一次迭代中你會丟失前面步驟的結果; 你也應該實際調用你的函數:
lists = [(2012, 'january', 'monday'), (2012, 'february', 'monday'), (2012, 'january', 'tuesday')]
day = input("Give day: ") #monday
def select_monday(lists, day):
list2 = []
for list in lists:
if list[2] == day: #from here I'm stuck and do not know how to continue
list2.append(list)
return list2
print(select_monday(lists, day))
這是一個更緊湊的功能:
def select_monday_2(lists, day):
return list(filter(lambda x: x[2] == day, lists))
print(select_monday_2(lists, day))
如果當天不是星期一,則返回“ None
”。 這效果更好:
def select_monday(lists, day):
list2 = []
for lst in lists:
if lst[2] == day:
list2.append(lst)
return list2
此外,附上整個清單,而不僅僅是工作日。 最后,最好不要使用list
作為變量名,因為它是內置的。
現在:
>>> select_monday(lists, day)
[(2012, 'january', 'monday'), (2012, 'february', 'monday')]
更短的替代方案,使用列表理解:
>>> [x for x in lists if x[2] == day]
[(2012, 'january', 'monday'), (2012, 'february', 'monday')]
這個問題是else語句。 如果其中一個檢查是假的,那么它將return None
。 刪除else語句並刪除append
語句中列表中的[2]
,除非您只想追加當天。
lists = [(2012, 'january', 'monday'), (2012, 'february', 'monday'), (2012, 'january', 'tuesday')]
day = input("Give day: ") #monday
def select_monday(lists, day):
list2 = []
for list in lists:
if list[2] == day: #from here I'm stuck and do not know how to continue
list2.append(list)
return list2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.