наверно такНадо вывести в список j те элементы списка a, которые не имеют четных цифр. Выдает такой ответ. Помогите пожалуйста с заданием
a = ['1234', '54234', '537', '319']
j = []
for i in a:
flag = False
for ii in i:
if int(ii) % 2 == 0:
flag = True
break
if not flag:
j.append(i)
print(j)
Так тут и захочешь если, то не сможешь!а вот не хочу я помогать
наверно так
Python:a = ['1234', '54234', '537', '319'] j = [] for i in a: flag = False for ii in i: if int(ii) % 2 == 0: flag = True break if not flag: j.append(i) print(j)
Бр-р-р-р-р! Ни-и-и-и-ич-ч-ч-чо не понимаю!На случай, если хочешь перед преподом выежиться)0))
Python:a = ['1234', '54234', '537', '319'] j = [i for i in a if all([(lambda x: int(x) & 1)(j) for j in i])] print(j)
лямбда-функция проверяет является ли цифра четной. Проверить на четность/нечетность можно не только сЧто дает побитовое "И"? Как элементы добавляются в список?
x % 2 == 0
, но с побитовым И. Кстати, на форуме по кликерманну тоже есть статья, описывающая побитовые действия. Прочти её до конца и с помощью кликера сможешь такое сделать. Ну а дальше обычный лист компрехеншен, который сразу вставляется в функцию all(), которая в свою очередь добавляет в основной список строку только в том случае, если все элементы строки были TrueС побитовым "И" я понял. Я провел научный тест научным методом :лямбда-функция проверяет является ли цифра четной. Проверить на четность/нечетность можно не только сx % 2 == 0
, но с побитовым И. Кстати, на форуме по кликерманну тоже есть статья, описывающая побитовые действия. Прочти её до конца и с помощью кликера сможешь такое сделать. Ну а дальше обычный лист компрехеншен, который сразу вставляется в функцию all(), которая в свою очередь добавляет в основной список строку только в том случае, если все элементы строки были True
x, y, z = 5, 3, 2
print(x & 1, y & 1, z & 1)
# return 1 1 0
Дело в том, что j в скобочках не просто так, он относится к лямбде. Заметь как прописана сама лямбда - она тоже в скобочкахНо я не понимаю вот это "(j) for j in i". Как вот это создает список?
(lambda x: int(x) & 1)
. Это я сделал для того, чтобы из цикла фор сразу в неё попадал первый элемент строки.(lambda x: x*x)(3)
for j in i
, а он возвращает нам по одной цифре из строкиСпасибо за объяснение! Блин! Я, конечно, понимаю, что твоя задача писать весь код программы чуть ли не в паре строк... чтобы обсфуркция эта даже тебе не потребовалась! Я понимаю, что твоя задача писать так, чтобы никто другой в твоем коде не разобрался, кроме тебя, но... блин! Тут же малыши-питонята на форуме вопросы задают! Сжалься, чувак!Дело в том, что j в скобочках не просто так, он относится к лямбде. Заметь как прописана сама лямбда - она тоже в скобочках
(lambda x: int(x) & 1)
. Это я сделал для того, чтобы из цикла фор сразу в неё попадал первый элемент строки.
Давай возьмем пример попроще:
(lambda x: x*x)(3)
вернет 9, потому что я сразу передаю ему аргумент 3. А в нашем случае получается, что для лямбды аргументом является то, что возвращает циклfor j in i
, а он возвращает нам по одной цифре из строки
Слушай! А еще вопрос! Вот почему [i for i in range(10)] как и ожидается, возвращает список [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], а вот кортеж возвращать не хочет!Дело в том, что j в скобочках не просто так, он относится к лямбде. Заметь как прописана сама лямбда - она тоже в скобочках
(lambda x: int(x) & 1)
. Это я сделал для того, чтобы из цикла фор сразу в неё попадал первый элемент строки.
Давай возьмем пример попроще:
(lambda x: x*x)(3)
вернет 9, потому что я сразу передаю ему аргумент 3. А в нашем случае получается, что для лямбды аргументом является то, что возвращает циклfor j in i
, а он возвращает нам по одной цифре из строки
Ок, уговорил))Сжалься, чувак!
Конечно! ) Ты про DDos-атаки слыхал? Твоим двустрочным кодом Пентагоновские сервера точно не перегрузишь и не заставишь упасть!пентагон решил взломать?)