[英]having a list in python,using lambda and map/filter to generate new list
[英]Python map lambda filter help using IF
給定一個由N個數字組成的列表,請使用單個列表推導生成一個僅包含以下值的新列表:
(a)偶數,以及
(b)來自原始列表中具有偶數索引的元素
我正在尋找上述問題的解決方案。 如此處建議的那樣,有一種簡單的方法可以解決該問題,但是我想知道是否有一種方法可以在“ FULL”輸入列表中使用map,lambda和filter的組合。
我正在嘗試做這樣的事情,但它不起作用。
>>> map(lambda i,x : x%2==0 or (i+1)%2==0, range(0,len(l)-1),l)
[False, True, False, True, True]
理想情況下,我需要寫一些類似的東西(添加“ x if”),但這不起作用。 有什么建議么?
map(lambda i,x : ***x if*** x%2==0 or (i+1)%2==0, range(0,len(l)-1),l)
該問題專門說“使用單個列表理解”。
話雖如此,您可以執行以下操作:
>>> map(lambda x: x[1], filter(lambda x: x[0] % 2 == 0 and x[1] % 2 == 0, enumerate([0, 1, 5, 4, 4])))
enumerate
將使用數字本身壓縮索引,從而產生[(0,0),(1、1),(2、5),(3、4),(4、4)]
僅當元組中的兩個數字均為偶數時,才會滿足給定lambda的filter
具有給定lambda的map
將丟棄索引並保留原始數字
在此示例中,將[0,4]留給您
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.