从2D列表创建python条件列表

dls*_*dls 0 python list

说我有一份清单清单.说三个元素的内部列表大小,如下所示:

['apple', 'fruit', 1.23]
Run Code Online (Sandbox Code Playgroud)

外部列表看起来像这样

data = [['apple', 'fruit', 1.23],
        ['pear', 'fruit', 2.34],
        ['lettuce', 'vegetable', 3.45]]
Run Code Online (Sandbox Code Playgroud)

我想迭代外部列表并仅在元素1匹配某个关键字(aka:'fruit')的情况下为临时列表剔除数据.所以,如果我匹配水果,我最终会得到这个:

tempList = [('apple', 1.23), ('pear', 2.34)]
Run Code Online (Sandbox Code Playgroud)

这是实现此目的的一种方法:

tempList = []
for i in data:
   if i[1] == 'fruit':
      tempList.append(i[0], i[2])
Run Code Online (Sandbox Code Playgroud)

是否有一些'Pythonic'的方法可以用更少的线来做到这一点?

Sil*_*ost 5

[(i, k) for i, j, k in data if j == 'fruit']
Run Code Online (Sandbox Code Playgroud)