我有一個嵌套列表,我想檢查是否i
包含在我的列表的最底層(i
是一個「子列表」中兩個元素的第一個)。嵌套列表查詢通配符
1)有沒有直接的方法來做到這一點?
2)我試過如下:
for i in randomlist:
if [i,randomlist.count(i)] in list1:
有沒有辦法來取代randomlist.count(i)
用通配符?我試過*,%,...,
,但其中沒有一個很好。有任何想法嗎? 在此先感謝!
我有一個嵌套列表,我想檢查是否i
包含在我的列表的最底層(i
是一個「子列表」中兩個元素的第一個)。嵌套列表查詢通配符
1)有沒有直接的方法來做到這一點?
2)我試過如下:
for i in randomlist:
if [i,randomlist.count(i)] in list1:
有沒有辦法來取代randomlist.count(i)
用通配符?我試過*,%,...,
,但其中沒有一個很好。有任何想法嗎? 在此先感謝!
我想你想要的是:
if any(l[0] == i for l in list1):
這將只在每個子列表,這是有效地與具有外卡第二個元素檢查的第一項。
該語法是非法的。我想你想刪除'in'。 – iCodez
我肯定是的,是的;謝謝 – jonrsharpe
爲什麼它是非法的語法?我使用和不使用'in'運行程序,沒有它的情況下Python顯示語法錯誤。 – user3017048
看來,這是實際的問題:
輸入顯示的子列表與數字和他們的計數嵌套列表: [86,4],[67,1],[89,1] ,...]輸出:我需要知道 數量與它的計數是否已在列表中(爲了不增加它 第二次),但伯爵期間是未知的for循環
有兩種方法可以解決這個問題。首先,如果列表中沒有重複的,簡單地將其轉換爲一個字典:
numbers = dict([[86,4],[67,1],[89,1]])
現在每個數字是關鍵,而計算價值。接下來,如果你想知道一個數字是不在字典,你有很多方法可以做到這一點:
# Fetch the number
try:
count = numbers[14]
except KeyError:
print('{} does not exist'.format(14))
# Another way to write the above is:
count = numbers.get(14)
if not count:
print('{} does not exist'.format(14))
# From a list of a numbers, add them only if they don't
# exist in the dictionary:
for i in list_of_numbers:
if i not in numbers.keys():
numbers[i] = some_value
如果目前已經在原始列表複製,你仍然可以把它轉換成一個字典,而是你需要做一些額外的工作,如果你想保留的所有值的數字:
from collections import defaultdict
numbers = defaultdict(list)
for key,value in original_list:
numbers[key].append(value)
現在,如果您有重複的號碼,所有的值存儲在列表中。您仍然可以按照相同的邏輯:
for i in new_numbers:
numbers[i].append(new_value)
除了現在如果該號碼已經存在,則new_value
只會被添加到現有的值列表。
最後,如果你想要做的就是添加到列表中,如果第一個號碼不存在:
numbers = set(i[0] for i in original_list)
for i in new_numbers:
if i not in numbers:
original_list += [i, some_value]
您能不能給例如輸入和輸出的? – user3
你可以添加一個隨機列表和期望輸出的例子嗎?很難理解你需要什麼 – Elisha
輸入顯示嵌套列表中包含數字和它們在子列表中的計數:[[86,4],[67,1],[89,1],...] 輸出:我需要知道一個具有它的計數的數字是否已經在列表中(爲了不再次添加它),但在for循環期間計數未知 – user3017048