Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Ищу способ, как в Python 3 add list to list

  1. Ищу способ, как в Python 3 add list to list

    Всем привет! Столкнулся с такой задачей в Python 3, нужно добавить один список к другому, но не могу разобраться, как правильнее это сделать, чтобы было и эффективно, и правильно. Кто может помочь? Примеров нашел много, но хотелось бы понять, какой вариант для этого лучший и почему. Чем отличаются методы, кто что использует и в каких ситуациях? Хелп, ребята!



  2. Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat

    А ТАКЖЕ: Канал о Python, статьи и книги ==>>
    @pythoneer_ru

  3. Здарова! Если тебе просто нужно объединить два списка, можешь использовать метод extend():

    Программный код:

    list1 
    = [123]

    list2 = [456]

    list1.extend(list2)

    print(
    list1)  # Output: [1, 2, 3, 4, 5, 6] 
    Но если тебе нужно новый список создать, то вот так:

    Программный код:

    list3 
    list1 list2

    print(list3)  # Output: [1, 2, 3, 4, 5, 6] 
    Разница в том, что extend() меняет существующий список, а "+" создает новый.

  4. Цитата Сообщение от JuliaDancer
    Здарова! Если тебе просто нужно объединить два списка, можешь использовать метод extend():

    Программный код:

    list1 
    = [123]

    list2 = [456]

    list1.extend(list2)

    print(
    list1)  # Output: [1, 2, 3, 4, 5, 6] 
    Но если тебе нужно новый список создать, то вот так:

    Программный код:

    list3 
    list1 list2

    print(list3)  # Output: [1, 2, 3, 4, 5, 6] 
    Разница в том, что extend() меняет существующий список, а "+" создает новый.
    О, спасибо за наводку! Я раньше не понимал разницу между extend() и '+'. Теперь ясно, когда что использовать.

  5. Можно еще использовать slicing, вот так:

    Программный код:

    list1 
    = [123]

    list2 = [456]

    list1[len(list1):] = list2

    print(list1)  # Output: [1, 2, 3, 4, 5, 6] 
    Ну вообще, extend() проще.

  6. Цитата Сообщение от plaksherie
    Можно еще использовать slicing, вот так:

    Программный код:

    list1 
    = [123]

    list2 = [456]

    list1[len(list1):] = list2

    print(list1)  # Output: [1, 2, 3, 4, 5, 6] 
    Ну вообще, extend() проще.
    Не думал про slicing! Прикольно, спасибо за идею.

  7. Если тебе важна производительность, то extend() быстрее. Вот код для замера:

    Программный код:

    import time

    list1 
    = [for i in range(1000000)]

    list2 = [for i in range(1000000)]

    start time.time()

    list1.extend(list2)

    print(
    'extend():'time.time() - start
    "+" медленнее будет!

  8. Цитата Сообщение от CelticDruid
    Если тебе важна производительность, то extend() быстрее. Вот код для замера:

    Программный код:

    import time

    list1 
    = [for i in range(1000000)]

    list2 = [for i in range(1000000)]

    start time.time()

    list1.extend(list2)

    print(
    'extend():'time.time() - start
    "+" медленнее будет!
    Ё-моё, да, про производительность забыл. Спасибо за практическое измерение.

  9. Да, парни правы, extend() самое то для оригинального списка. Но если ты хочешь что-то по-веселее, можешь еще думачнее использовать itertools:

    Программный код:

    import itertools

    list1 
    = [123]

    list2 = [456]

    list3 = list(itertools.chain(list1list2))

    print(
    list3)  # Output: [1, 2, 3, 4, 5, 6] 
    Это чисто для разнообразия - можно и так замутить.

  10. Цитата Сообщение от Николай
    Да, парни правы, extend() самое то для оригинального списка. Но если ты хочешь что-то по-веселее, можешь еще думачнее использовать itertools:

    Программный код:

    import itertools

    list1 
    = [123]

    list2 = [456]

    list3 = list(itertools.chain(list1list2))

    print(
    list3)  # Output: [1, 2, 3, 4, 5, 6] 
    Это чисто для разнообразия - можно и так замутить.
    Реально, itertools - это вообще другой уровень. Не думал так использовать, забавно и полезно!

Страница 1 из 2 12 ПоследняяПоследняя