Python 如何合并';如果';条件转换为for循环语句

Python 如何合并';如果';条件转换为for循环语句,python,python-3.6,Python,Python 3.6,输出:[(1,'hi'),(3,'hi'),(4,'hi'),(7,'hi')] 我是python的初学者。 我希望得到相同的输出,但希望减少“For”循环中的代码量并提高效率 循环正常时,可以使用: 您可以使用列表理解和筛选器在一行中写入。有一个很好的解释过滤器可在。使用您可以使用的过滤器,这有利于执行时间 new_data = [i for i in data if i[1] == 'hi'] 输出 data = [(1,'hi'),(2,'hello'),(3,'hi'),(4,'hi'

输出:[(1,'hi'),(3,'hi'),(4,'hi'),(7,'hi')]

我是python的初学者。
我希望得到相同的输出,但希望减少“For”循环中的代码量并提高效率

循环正常时,可以使用:


您可以使用列表理解和筛选器在一行中写入。有一个很好的解释过滤器可在。使用您可以使用的过滤器,这有利于执行时间

new_data = [i for i in data if i[1] == 'hi']
输出

data = [(1,'hi'),(2,'hello'),(3,'hi'),(4,'hi'),(5,'hello'),(6,'hello'), (7,'hi'),(8,'hello')]
new_data = list(filter(lambda i: i[1] == 'hi', data))

您的代码很容易理解,并且完全执行它应该执行的操作。这几行额外的数据应该不会太重要。
new_data=[x代表数据中的x,如果x[1]=='hi']
data = [(1,'hi'),(2,'hello'),(3,'hi'),(4,'hi'),(5,'hello'),(6,'hello'), (7,'hi'),(8,'hello')]
new_data = list(filter(lambda i: i[1] == 'hi', data))
[(1, 'hi'), (3, 'hi'), (4, 'hi'), (7, 'hi')]