Помогите с программированием - Компьютерные вопросы

Вопрос Помогите с программированием

Регистрация
27 Июл 2013
Сообщения
92
Репутация
0
Спасибо
0
Монет
0
Все никак не могу решить задачу, весь мой код не подходит а нейронка не выдает верный ответ:



Задача состоит в том, чтобы для входного списка списков получить список нечетных чисел по порядку списков (первый, третий и так далее), оставив в каждом списке только нечетные по порядку элементы.



Например, из списка [[1, 2, 3], [4, 5, 6], [7, 8, 9]] должен получиться список [[1, 3], [7, 9]].



Функциональное решение должно вычислять новый список списков на основе оригинального. Оригинальный список должен оставаться неизменным. У вас должна получиться функция odds_from_odds():



from solution import odds_from_odds

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

odds_from_odds(l)

# [[1, 3], [7, 9]]

print(l) # Оригинал не изменился

# => [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

odds_from_odds([]) # Пустой список не должен быть проблемой

# []

odds_from_odds([[]]) # Как и список пустых списков

# [[]]

Процедурное решение должно изменить список-аргумент по месту, а не возвращать его новую версию. Постарайтесь обойтись без создания вспомогательных структур, в том числе для обработки вложенных списков. У вас должна получиться функция keep_odds_from_odds():



from solution import keep_odds_from_odds

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

keep_odds_from_odds(l) # Процедура ничего не возвращает

print(l) # Но при этом она меняет аргумент

# => [[1, 3], [7, 9]]

keep_odds_from_odds(l)

print(l)

# => [[1]]

keep_odds_from_odds(l)

print(l) # Тут уже ничего четного не осталось, поэтому изменений нет

# => [[1]]

keep_odds_from_odds([]) # Пустой список не должен быть проблемой

keep_odds_from_odds([[]]) # Как и список пустых списков
 
Регистрация
2 Авг 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
def odds_from_odds(nums):
nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = []
for i in range(0, len(nums), 2):
result.append(list(filter(lambda n: n % 2 != 0, nums)))
return result


nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(odds_from_odds(nums))
 
Регистрация
30 Сен 2013
Сообщения
79
Репутация
0
Спасибо
1
Монет
0
Задача простейшая.. Зачем тут какие-то "from solution"? m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

def f(a):
return list(filter(lambda x: not a.index(x) % 2, a))

m = f(m)
for i in range(len(m)):
m = f(m)
print(m)
 
Регистрация
17 Дек 2013
Сообщения
86
Репутация
6
Спасибо
1
Монет
0
from solution import odds_from_odds
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
odds_from_odds(l)
print(l)
odds_from_odds([])
odds_from_odds([[]])
from solution import keep_odds_from_odds
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
keep_odds_from_odds(l)
print(l)
keep_odds_from_odds(l)
print(l)
keep_odds_from_odds(l)= "nch"
print(l)
keep_odds_from_odds:
print:("nch")
keep_odds_from_odds([[]])

Попробуй это раз Python
 
Регистрация
20 Дек 2013
Сообщения
107
Репутация
1
Спасибо
0
Монет
0
Вот функциональное решение для вашей задачи:

```python
def odds_from_odds(lst):
result = [[x for x in sublst if x % 2 != 0] for sublst in lst]
return result

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(odds_from_odds(l)) # [[1, 3], [7, 9]]
print(l) # [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(odds_from_odds([])) # []
print(odds_from_odds([[]])) # [[]]
```

А вот процедурное решение:

```python
def keep_odds_from_odds(lst):
for sublst in lst:
i = 0
while i < len(sublst):
if sublst % 2 == 0:
del sublst
else:
i += 1

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
keep_odds_from_odds(l)
print(l) # [[1, 3], [7, 9]]
keep_odds_from_odds(l)
print(l) # [[1]]
keep_odds_from_odds(l)
print(l) # [[1]]
keep_odds_from_odds([]) # No issues with an empty list
keep_odds_from_odds([[]]) # The list of empty lists also should not be a problem
```

Надеюсь, это поможет вам выполнить задачу.
 
Сверху Снизу