/ / lambda resultados inesperados - python, lambda

lambda resultados inesperados - python, lambda

Eu tenho o seguinte código python simples

numbers = range(1,100)
print (list(numbers))
numbers_over_30 = filter(lambda x: x>>30,numbers)
print (list(numbers_over_30))

Eu crio uma lista de números de 1 a 99 e que funciona bem me dando

[1,2,3,4,5.....97,98,99]

a segunda lista deveria me dar

[31,32,33....97,98,99]

mas eu só tenho uma lista vazia [].

Se eu mudar a função lambda, recebo como abaixo:

x>>5 gives me [32,33,34...97,98,99]
x>>4 gives me [16,17,18...97,98,99]
x>>3 gives me [8,9,10...97,98,99]

Alguém pode lançar alguma luz sobre o que a função lambda está fazendo? eu esperei isso numbers_over_30 consistiria em todos os valores de números para os quais x>>30 foi verdade?

Eu tenho certeza que existem maneiras melhores de fazer isso, mas eu estou tentando especificamente alcançar o resultado usando filtro e lambda por uma unidade da CodeAcademy, então estou apenas tentando entender o que está acontecendo.

Respostas:

0 para resposta № 1

Você precisa apenas excluir um>, então seu código será:

numbers = range(1,100)
print (list(numbers))
numbers_over_30 = filter(lambda x: x>30,numbers)   # here your error
print (list(numbers_over_30))