簡體   English   中英

比較列表中列表的元素

[英]Compare elements of list within a list

我有一個這樣的清單:

[[846033, 365, 202], [849432, 276, 140], [821121, 209, 111], [820180, 244, 133], [849401, 971, 572], [848613, 790, 596], [846978, 914, 272]]

小清單的第一個元素是“ idnumber”,其他兩個元素是我要比較的數據。

我想做的事情是:我想刪除大列表中至少兩個數據編號之一小於250的元素。答案應如下所示:

[[849401, 971, 572], [848613, 790, 596], [846978, 914, 272]].

我試圖在for循環中創建一個for循環,但失敗了:

def zonderRuis(sigIdSpot=[[846033, 365, 202], [849432, 276, 140], [821121, 209, 111], [820180, 244, 133], [849401, 971, 572], [848613, 790, 596], [846978, 914, 272]]):
    ruisvrij=[]
    for i in range(len(sigIdSpot)):
        for r in i:
            if r[2]>=250 and r[3]>=250:
                ruisvrij.append(r)
    return ruisvrij
[x for x in data if all(y >= 250 for y in x[1:])]

關於迭代的一點:

for i in range(len(sigIdSpot)):
    x = sigIdSpot[i]
    print x

# becomes more clear if you do the following:
for x in sigIdSpot:
    print x

現在,如果您要調試代碼,則可以打印一些內容以查看代碼的狀態:

def zonderRuis(sigIdSpot=[[846033, 365, 202], [849432, 276, 140], [821121, 209, 111], [820180, 244, 133], [849401, 971, 572], [848613, 790, 596], [846978, 914, 272]]):
    ruisvrij=[]
    for i in range(len(sigIdSpot)):
        print 'i is:', i
        for r in i:
            print 'r is:', r
            if r[2]>=250 and r[3]>=250:
                ruisvrij.append(r)
                print 'r appended to ruisvrij:', ruisvrij
    return ruisvrij

記住,交互式外殼是我們最好的朋友。

In [15]: l = [[846033, 365, 202], [849432, 276, 140], [821121, 209, 111], [820180, 244, 133], [849401, 971, 572], [848613, 790, 596], [846978, 914, 272]]

In [16]: [sub for sub in l if min(sub[1:]) >= 250]
Out[16]: [[849401, 971, 572], [848613, 790, 596], [846978, 914, 272]]
list1 =  [[846033, 365, 202], [849432, 276, 140], [821121, 209, 111], [820180, 244, 133], [849401, 971, 572], [848613, 790, 596], [846978, 914, 272]]
list2 = []
for x in list1:
    if x[1] > 250 and x[2] > 250:
        lijst1.append(x)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM