Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 28, 2016 20:04:25

dima757
Зарегистрирован: 2016-06-26
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

где ошибка?

Выведите все четные элементы списка. При этом используйте цикл for, перебирающий элементы списка, а не их индексы!

a = input().split()
for i in range(len(a)):
a[i] = int(a[i])
if a[i] % 2 == 0:
a.append(i)
print(a)

Офлайн

#2 Июнь 28, 2016 20:14:46

Firik
Зарегистрирован: 2015-12-02
Сообщения: 151
Репутация: +  6  -
Профиль   Отправить e-mail  

где ошибка?

a = [1, 2, 3, 4, 5, 6, 7]
for i in a[1: len(a): 2]:
print(i)
Или так
a = [1, 2, 3, 4, 5, 6, 7]
print([i for i in a[1: len(a): 2]])

Отредактировано Firik (Июнь 28, 2016 20:18:33)

Офлайн

#3 Июнь 28, 2016 20:16:36

dima757
Зарегистрирован: 2016-06-26
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

где ошибка?

нам надо чётные элементы, а не индексы. список произвольный

Отредактировано dima757 (Июнь 28, 2016 20:17:46)

Офлайн

#4 Июнь 28, 2016 20:21:14

Firik
Зарегистрирован: 2015-12-02
Сообщения: 151
Репутация: +  6  -
Профиль   Отправить e-mail  

где ошибка?

dima757
Вы или не запускали пример или путаете индексы с элементами.

Офлайн

#5 Июнь 28, 2016 20:35:19

dima757
Зарегистрирован: 2016-06-26
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

где ошибка?

ерунда получается
если дано 1 2 2 3 3 3 4 выводит 2 3 3
должно 2 2 4

Отредактировано dima757 (Июнь 28, 2016 20:39:59)

Офлайн

#6 Июнь 28, 2016 20:59:27

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

где ошибка?

dima757
При этом используйте цикл for, перебирающий элементы списка,
а вы кстати перебираете по индексам в своем решении

a = [1, 2, 3, 4, 5, 6, 7]
for i in a:
  if i%2 == 0:
    print(i)
или так
a = [1, 2, 3, 4, 5, 6, 7]
print([i for i in a if i%2 == 0])

Отредактировано marvellik (Июнь 28, 2016 21:08:17)

Офлайн

#7 Июнь 28, 2016 21:05:51

dima757
Зарегистрирован: 2016-06-26
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

где ошибка?

Спасибо!!!!
В итоге вышло так

a = input().split()
for i in a:
    i = int(i)
    if i % 2 == 0:
        print(i)    

Офлайн

#8 Июнь 28, 2016 21:10:17

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

где ошибка?

можно проще

for i in input().split():
    if int(i) % 2 == 0:
        print(i)

Отредактировано marvellik (Июнь 28, 2016 21:10:30)

Офлайн

#9 Июнь 28, 2016 21:15:00

dima757
Зарегистрирован: 2016-06-26
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

где ошибка?

спасибо
но для меня(чайника) хоть как

Офлайн

#10 Июнь 29, 2016 06:06:10

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

где ошибка?

dima757
Выведите все четные элементы списка.
>>> lst = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4]
>>> 
>>> [i for i in lst if i % 2 == 0]
[2, 4, 6, 2, 4]
>>> 
>>> list(filter(lambda x: x % 2 == 0, lst))
[2, 4, 6, 2, 4]
>>>

marvellik
можно проще
Надо, чтобы сразу поступал список чисел.

Просто переделать вот это
dima757
a = input().split()
for i in a:

Вот в это
a = map(int, input().split())
for i in a:

>>> a = map(int, input().split())
1 2 3 4 5
>>> a
<map object at 0xb740a32c>
>>> list(a)
[1, 2, 3, 4, 5]
>>>



Отредактировано py.user.next (Июнь 29, 2016 06:07:01)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version