Найти - Пользователи
Полная версия: Битовые операции
Начало » Python для новичков » Битовые операции
1
udeep
Решал: «Напишите функцию modify_list(l), которая принимает на вход список целых чисел, удаляет из него все нечётные значения, а чётные нацело делит на два»

Так работает:
 def modify_list(lst):
    i = 0
    while i < len(lst):
        if lst[i] & 1:
            lst.pop(i)
        else:
            lst[i] >>= 1
            i += 1

А так почему-то(???) нет:
 def modify_list(lst): lst[:] = [i >>= 1 for i in lst if i & 1]

И “полная ерунда” при:
 def modify_list(lst): lst[:] = [i // 2 for i in lst if i & 1]
FishHook
udeep
А так почему-то(???) нет:

может я чего-то не понял, но в случае “так работает” вы удаляете из списка если item & 1
а в случае “А так почему-то нет” вы добавляете в список при том же условии
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB