python 片段

python 片段

filter函数可以根据提供的函数对序列进行过滤,返回一个迭代器;next函数可以获取迭代器的下一个项目

def is_even(num):
    return num % 2 == 0
 
numbers = [1, 3, 5, 7, 2, 4, 6, 8]
 
even_number = next(filter(is_even, numbers), None)
 
print(even_number)  # Output: 2

注意,filter函数并不会立即对整个列表进行过滤,而是返回一个filter对象。这个对象是一个迭代器,只有在需要获取元素时,才会对列表进行过滤。这意味着,如果列表非常大,或者提供给filter函数的函数非常复杂,这个方法仍然可以高效地工作。


doc_result = list(filter(lambda x: x.get_score() > 0, doc))

doc_result = doc.filter(lambda x: x.get_score() > 0)

这么写不行,好奇怪啊python,我不太理解,js写多了感觉这好恶心

for document in doc_result.sort(key=lambda s: s.get_score(), reverse=True):

这也报一个TypeError: 'NoneType' object is not iterable的错误


from collections import deque
 
d = deque([1, 2, 3, 4, 5])
 
# 获取最后一个元素
last_element = d[-1]

my_list = [1, 2, 3, 4, 5]
 
# three ways to delete 3
my_list.remove(3)
my_list.pop(2)
del my_list[2]

真的混乱,我挺讨厌python的


walrus operator:

while (sum := numbers[left] + numbers[right]) != target:
    # 'sum' can be used here since it's already assigned