Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Центр помощи
  • » Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок [RSS Feed]

#1 Март 28, 2016 22:49:36

Mr.Geekman
Зарегистрирован: 2016-03-28
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок

Прошу помощи

n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
def flatten(lists):
    results = []
    for numbers in range(len(lists)):
        for i in range(len(lists[numbers])):
            results.append(numbers[i])
    return results        
print flatten(n)

Отредактировано Mr.Geekman (Март 28, 2016 22:54:23)

Офлайн

#2 Март 28, 2016 23:20:34

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок

>>> def flatten(lists):
...     result = []
...     for numbers in range(len(lists)):
...         for item in range(len(lists[numbers])):
...             result.append(lists[numbers][item])
...     return result
... 
>>> flatten(n)
[1, 2, 3, 4, 5, 6, 7, 8, 9]



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 29, 2016 05:45:04

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок

Mr.Geekman
как сделать с range
А он тут нафиг не нужен
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
def flatten(lists):
     result = []
     for numbers in lists:
         for item in numbers:
             result.append(item)
     return result
print (flatten(n))



Офлайн

#4 Март 29, 2016 06:07:46

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок

ну или так

from functools import reduce
from operator import add
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
def flatten(lists):
     return reduce(add, lists)
print (flatten(n))



Офлайн

#5 Март 29, 2016 06:09:21

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок

Ну или вот так

from itertools import chain
n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
def flatten(lists):
     return list(chain(*lists))
print (flatten(n))



Офлайн

#6 Март 29, 2016 06:45:51

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

Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок

>>> def flatten(lists):
...     return sum(lists, [])
... 
>>> n = [[1, 2, 3], [4, 5, 6, 7, 8, 9]]
>>> flatten(n)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>>



Отредактировано py.user.next (Март 29, 2016 06:46:45)

Офлайн

  • Начало
  • » Центр помощи
  • » Подскажите, пожалуйста, как сделать с range (без него получилось), чтобы не было ошибок[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version