Будь-який об’єкт Python може міститися в групі впорядкованих значень у списку Python. Оскільки список є змінною структурою даних у Python, ми можемо додавати, видаляти або змінювати існуючі значення в цьому контейнері. На відміну від наборів, список допускає численні екземпляри однакового значення та розглядає кожен як окремий елемент. У цьому посібнику ми навчимося ініціалізувати об’єкт списку в Python.
Ініціалізуйте списки за допомогою квадратних дужок
Використання квадратної дужки є одним із способів ініціалізації списку без значень, якщо ми хочемо створити порожній список у Python без значень. Щоб ініціалізувати список, нам потрібно лише вказати пару квадратних дужок зі значеннями елементів або без них.
Код
java volatile ключове слово
# Python program to show how to initialize a list using square brackets # Initializing an empty list list_ = [] print('An empty list: ', list_) # Initializing a list with some values list_ = [1, 3, 5, 7] print('A non-Empty list: ', list_)
Вихід:
An empty list: [] A non-Empty list: [1, 3, 5, 7]
Використання вбудованої функції list() для ініціалізації списку
Функція list() Python створює список, ітерований об’єкт. Таким чином, це ще один спосіб створити порожній список Python без будь-яких даних у цій мові кодування.
Ітераторний об’єкт, послідовність, що дозволяє ітерацію, або контейнер можуть бути ітерованими. Новий порожній список створюється, якщо не надано вхідних даних.
Код
# Python program to show how to initialize a list using the built-in list function # Initializing an empty list list_ = list() print('An empty list: ', list_) # Initializing a non-empty list list_ = list([1, 2, 3]) print('A non-empty list: ', list_)
Вихід:
An empty list: [] A non-empty list: [1, 2, 3]
Метод квадратних дужок надається перевагу над вбудованою функцією list(), оскільки він більш зрозумілий і наочний.
Використання розуміння списків для ініціалізації списку
Ми можемо застосувати підхід розуміння списку, щоб встановити параметри списку за замовчуванням. Він містить вираз, укладений у квадратні дужки, оператор for і необов’язковий оператор if, який може слідувати або не слідувати. Будь-який елемент, який ми хочемо додати до списку, можна записати як вираз. Вираз буде 0, якби користувач ініціалізував список нулями.
Розуміння списку — це елегантний, простий і добре відомий підхід до побудови списку, заснованого на ітераторі.
Код
# Python program to show how to initialize a list using list comprehension # Initializing a list list_ = [item for item in range(10)] print('The list was created using list comprehension: ', list_)
Вихід:
перетворення об'єкта в рядок
The list was created using list comprehension: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Ця техніка ініціалізує списки набагато швидше, ніж цикли Python for і while.
Ініціалізація списку Python за допомогою оператора *
Іншим способом ініціалізації списку в Python є використання оператора *. Він створює список із кількома значеннями. Синтаксис використання цього оператора: [element] * n. Тут n — це кількість разів, коли ми хочемо повторити елемент у списку.
Цей метод допомагає, коли ми хочемо ініціалізувати список попередньо визначених довжин.
Код
# Python program to show how to use the * operator to initialize a list list_ = [5]*10 print (list)
Вихід:
k найближчий сусід
[5, 5, 5, 5, 5, 5, 5, 5, 5]
Цей метод є дуже ефективним і найшвидшим способом створення списку. Далі в цьому підручнику ми порівняємо час, який витрачають методи.
Єдиним недоліком використання цього оператора для ініціалізації списку Python є те, що нам потрібно створити 2D-список, оскільки цей метод створить лише неглибокий список, тобто створить один об’єкт списку, і всі індекси посилатимуться на нього об'єкт, який буде дуже незручним. Ось чому ми використовуємо розуміння списків, коли нам потрібно створити 2D-списки.
Використання циклу for і append()
Ми створимо порожній список і запустимо цикл for для додавання елементів за допомогою функції append() списку.
Код
# Python program to show how to use a for loop to initialize a list arr = [] for i in range(1000): arr.append(0)
Використання циклу While для ініціалізації списку
Ми можемо використовувати цикл while так само, як ми використовували цикл for для ініціалізації списку.
що таке map java
Код
# Python program to initialize a list using a while loop # Creating an empty list array = [] # Declaring counter variables i = 0 # Starting a while loop while(i <10): array.append(0) i +="1" print(array) < pre> <p> <strong>Output:</strong> </p> <pre> [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] </pre> <h2>Time Complexity</h2> <p>Let us now see how long each of the described approaches will take. We will initialize a list of 100000 elements 1000 times. We will calculate the average time each method takes to perform this task.</p> <p> <strong>Code</strong> </p> <pre> # Python program to see the time taken by various methods to initialize a list # importing the time module to calculate the time taken by a chunk of code import time # initializing the lists for various methods forLoop = [] whileLoop = [] listComprehension = [] starOperator = [] # repeating the process of generating a list of 100000 elements 500 times # Then calculate the average time taken by the methods for i in range(1000): # starting time of the execution begin = time.time() # declaring an empty list list_ = [] # running a for loop and iterating it 100000 times for i in range(100000): list_.append(0) # stoping time of the execution end = time.time() forLoop.append(end - begin) # starting time of the execution begin = time.time() # declaring an empty list list_ = [] i = 0 # COunter variable # running a while loop and iterating it 100000 times while i <100000: 100000 list_.append(0) i +="1" end="time.time()" whileloop.append(end - begin) begin="time.time()" # using a list comprehension to initialize the for in range(100000)] listcomprehension.append(end astrick (*) operator * staroperator.append(end print('the average execution time of loop is: ', sum(forloop) 1000) while sum(whileloop) sum(listcomprehension) taken operator: sum(staroperator) < pre> <p> <strong>Output:</strong> </p> <pre> The average execution time of for loop is: 0.01166958212852478 The average execution time of the while loop is: 0.01916465663909912 The average execution time of list comprehension is: 0.005084690093994141 The average execution time was taken of * operator: 0.00028331947326660156 </pre> <p>We can see that for and while loops take almost the same execution time. However, for loop is a little better than the while loop.</p> <p>List comprehension shows much better performance than the for and while loops. It is 2-3 times faster than the loops. Thus, list comprehension is much more efficient than the append() function of the lists.</p> <p>The * operator has shown the best performance out of all the four methods.</p> <hr></100000:></pre></10):>
Складність часу
Тепер подивимося, скільки часу займе кожен із описаних підходів. Ми ініціалізуємо список з 100 000 елементів 1000 разів. Ми обчислимо середній час, який потрібно кожному методу для виконання цього завдання.
Код
# Python program to see the time taken by various methods to initialize a list # importing the time module to calculate the time taken by a chunk of code import time # initializing the lists for various methods forLoop = [] whileLoop = [] listComprehension = [] starOperator = [] # repeating the process of generating a list of 100000 elements 500 times # Then calculate the average time taken by the methods for i in range(1000): # starting time of the execution begin = time.time() # declaring an empty list list_ = [] # running a for loop and iterating it 100000 times for i in range(100000): list_.append(0) # stoping time of the execution end = time.time() forLoop.append(end - begin) # starting time of the execution begin = time.time() # declaring an empty list list_ = [] i = 0 # COunter variable # running a while loop and iterating it 100000 times while i <100000: 100000 list_.append(0) i +="1" end="time.time()" whileloop.append(end - begin) begin="time.time()" # using a list comprehension to initialize the for in range(100000)] listcomprehension.append(end astrick (*) operator * staroperator.append(end print(\'the average execution time of loop is: \', sum(forloop) 1000) while sum(whileloop) sum(listcomprehension) taken operator: sum(staroperator) < pre> <p> <strong>Output:</strong> </p> <pre> The average execution time of for loop is: 0.01166958212852478 The average execution time of the while loop is: 0.01916465663909912 The average execution time of list comprehension is: 0.005084690093994141 The average execution time was taken of * operator: 0.00028331947326660156 </pre> <p>We can see that for and while loops take almost the same execution time. However, for loop is a little better than the while loop.</p> <p>List comprehension shows much better performance than the for and while loops. It is 2-3 times faster than the loops. Thus, list comprehension is much more efficient than the append() function of the lists.</p> <p>The * operator has shown the best performance out of all the four methods.</p> <hr></100000:>
Ми бачимо, що цикли for і while займають майже однаковий час виконання. Однак цикл for трохи кращий, ніж цикл while.
Розуміння списку показує набагато кращу продуктивність, ніж цикли for і while. Це в 2-3 рази швидше, ніж цикли. Таким чином, розуміння списків набагато ефективніше, ніж функція append() для списків.
Оператор * показав найкращу продуктивність з усіх чотирьох методів.
100000:>10):>