모든 Python 객체는 Python 목록의 순서가 지정된 값 그룹에 포함될 수 있습니다. 목록은 Python에서 변경 가능한 데이터 구조이기 때문에 이 컨테이너의 기존 값을 추가, 제거 또는 변경할 수 있습니다. 세트와 달리 목록은 동일한 값의 수많은 인스턴스를 허용하고 각각을 다른 항목으로 처리합니다. 이 튜토리얼에서는 Python에서 목록 개체를 초기화하는 방법을 배웁니다.
대괄호를 사용하여 목록 초기화
Python에서 값이 없는 빈 목록을 생성하려는 경우 대괄호를 사용하는 것은 값이 없는 목록을 초기화하는 한 가지 방법입니다. 목록을 초기화하려면 항목 값이 있거나 없는 대괄호 쌍만 지정하면 됩니다.
암호
# 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() 함수를 사용하여 목록 초기화
Python의 list() 함수는 반복 가능한 객체인 목록을 구성합니다. 따라서 이는 이 코딩 언어로 데이터 없이 빈 Python 목록을 만드는 또 다른 방법입니다.
int 파신트
반복자 객체, 반복을 가능하게 하는 시퀀스 또는 컨테이너는 모두 반복 가능합니다. 입력이 없으면 새로운 빈 목록이 구성됩니다.
암호
세상에서 가장 멋진 미소
# 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으로 초기화한 경우 표현식은 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)
산출:
[5, 5, 5, 5, 5, 5, 5, 5, 5]
이 방법은 목록을 만드는 데 매우 효율적이고 가장 빠른 방법입니다. 이 튜토리얼의 뒷부분에서 메서드에 소요되는 시간을 비교해 보겠습니다.
CSS에서 이미지 정렬
Python 목록을 초기화하기 위해 이 연산자를 사용하는 유일한 단점은 2D 목록을 생성해야 할 때입니다. 이 방법은 얕은 목록만 생성합니다. 즉, 단일 목록 개체를 생성하고 모든 인덱스는 이를 참조합니다. 매우 불편할 개체입니다. 이것이 우리가 2D 목록을 생성해야 할 때 목록 이해를 사용하는 이유입니다.
for 루프 및 추가() 사용
빈 목록을 만들고 목록의 추가() 함수를 사용하여 항목을 추가하기 위해 for 루프를 실행합니다.
암호
# Python program to show how to use a for loop to initialize a list arr = [] for i in range(1000): arr.append(0)
While 루프를 사용하여 목록 초기화
목록을 초기화하기 위해 for 루프를 사용한 것처럼 while 루프를 사용할 수 있습니다.
암호
# 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):>
시간 복잡도
이제 설명된 각 접근 방식에 소요되는 시간을 살펴보겠습니다. 100000개의 요소 목록을 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배 빠릅니다. 따라서 목록 이해는 목록의 추가() 함수보다 훨씬 효율적입니다.
* 연산자는 네 가지 방법 모두 중에서 가장 좋은 성능을 보여주었습니다.
100000:>10):>