Слияние разномерных списков

Главная Форумы Задать вопрос Слияние разномерных списков

  • В этой теме 9 ответов, 3 участника, последнее обновление 7 лет назад сделано Семен.
Просмотр 10 сообщений - с 1 по 10 (из 10 всего)
  • Автор
    Сообщения
  • #7114 Score: 0
    Семен
    Участник
    5 pts

    Здравствуйте, помогите мне пожалуйста со списками. Всё никак не могу въехать в циклы.

    Нужен код python, который из двух списков одинаковой длины, один из которых вложенный: [1,2,3] и [‘а’,[‘б’,’бб’],’в’] сделает один вложенный список: [[1,’а’],[2,’б’],[2,’бб’],[3,’в’]], который длиннее исходных.

    Если не затруднит, дайте код, который будет легче восприниматься (компактности предпочесть наглядность). А я пока опять открою Лутца. Спасибо

    #7116 Score: 2
    ИваСерж
    Хранитель
    134 pts

    Код по ссылке.
    Прошу обратить внимание, я складываю стринг со стрингом.

    https://pastebin.com/GLzu3eNh

    #7118 Score: 1
    Ренат Я.
    Модератор
    79 pts

    данную задачу можно решить без питона, плюс в том что ему без разницы что подавать на вход

     

     

    #7120 Score: 0
    Семен
    Участник
    5 pts

    Спасибо за оба решения!

    В работу принял первое, тк на данный момент вынужден работать в версии 1.1(

    #7123 Score: 0
    ИваСерж
    Хранитель
    134 pts

    Ренат, у меня результат немножко другой. Это я провтыкал задание )). Лучше вместо сложения i+j написать i.append(j).
    Если принципиально, то и в питоне можно “приводить” значения. Если бы задание было поставлено конкретней, можно было бы использовать встроенные методы приведения к стрингу str() или .ToString()

    #7124 Score: 0
    Ренат Я.
    Модератор
    79 pts

    Семен, так ноды же стандартные и в 1.1 тоже должны работать.

    #7128 Score: 0
    Семен
    Участник
    5 pts

    Нету способа с собачкой @L2, хотя это вроде как-то решается. 

    #7130 Score: 0
    ИваСерж
    Хранитель
    134 pts

    @L1 – это хитрый способ выборки по уровням вложенного списка. Почитать можно погуглив или тут
    http://dynamobim.org/introducing-listlevel-working-with-lists-made-easier/

    Раньше как-то и без этого обходились. Лично для меня, непривычно. Но опция прикольная

    #7132 Score: 0
    Ренат Я.
    Модератор
    79 pts

    использовал функционал “Узел для кодировки”, вот что получилось, может и получиться в 1.1 запустить

    t1 = Flatten(t2);
    num1 = Count(t2@-2<1>);
    t3 = List.OfRepeatedItem(t4@-1<1>, num1@-1<1>);
    t5 = Flatten(t3@-1<1>);
    t6 = List.AddItemToEnd(t1@-1<1>, t5@-1<1>);

    #7137 Score: 0
    Семен
    Участник
    5 pts

    Нет, тоже не работает.

    Я остановился на этом, вроде тоже всеядный:

    for i,j in zip (list1, list2):
    if type(j) == list:
    for k in j:
    outList.append([i, k])
    else:
    outList.append([i, j])
    OUT = outList

Просмотр 10 сообщений - с 1 по 10 (из 10 всего)
  • Для ответа в этой теме необходимо авторизоваться.