>  기사  >  백엔드 개발  >  Python에서 목록을 초기화하는 방법은 무엇입니까?

Python에서 목록을 초기화하는 방법은 무엇입니까?

青灯夜游
青灯夜游원래의
2019-03-19 12:00:0815856검색

Python은 매우 유연한 언어이며 다양한 방법으로 단일 작업을 수행할 수 있습니다. 예를 들어 초기화 목록을 여러 방법으로 수행할 수 있습니다. 다음 기사에서는 여러 Python 초기화 방법을 소개하고 이러한 방법의 효율성을 비교하는 것이 도움이 되기를 바랍니다.

Python에서 목록을 초기화하는 방법은 무엇입니까?

이제 Python에서 목록을 초기화하는 몇 가지 방법을 소개합니다(크기 1000의 목록을 만들고 0으로 초기화합니다).

방법 1: for 루프와 append() 사용

빈 목록을 만들고,append() 메서드를 사용하여 for 루프를 n번 반복하여 목록에 요소를 추가할 수 있습니다.

arr = []
for i in range(1000):
    arr.append(0)

방법 2: 카운터 변수 및 추가()와 함께 while 루프를 사용합니다.

이 방법은 방법 1과 다소 유사하지만 for 루프 대신 while 루프를 사용합니다.

arr = []
i = 0
while(i<1000):
    arr.append(0)

방법 3: 목록 이해 사용

목록 이해는 수학자들이 잘 알려진 레이블 집합을 구현하는 데 사용하는 Python 방식입니다. 표현식을 포함하는 대괄호, for 절, 선택적 if 절로 구성됩니다.

표현식은 목록에 넣고 싶은 모든 유형의 객체가 될 수 있습니다. 목록을 0으로 초기화했으므로 표현식은 0만 됩니다.

arr = [0 for i in range(1000)]

설명: 효율적인 코드를 작성하려면 목록 이해를 사용하고 for 루프보다 실행 속도가 35% 빠릅니다.

방법 4: * 연산자 사용

연산자는 [객체] * n으로 사용할 수 있습니다. 여기서 n은 배열의 요소 수입니다.

arr = [0]*1000

코드 실행 시간 비교

이 네 가지 메서드의 실행 시간을 살펴보고 어떤 메서드가 더 빠른지 살펴보겠습니다.

예: 각 메서드가 10,000개 요소의 배열을 500회 이상 초기화하는 데 걸리는 평균 시간을 계산합니다.

# 导入时间模块以计算时间
import time 
  
# 初始化列表以保存时间
forLoopTime = [] 
whileLoopTime = [] 
listComprehensionTime = [] 
starOperatorTime = [] 
  
# 重复此过程500次,并计算所用的平均时间。
for k in range(500):  
  
    # 开始时间
    start = time.time() 
    # 声明空列表
    a = [] 
    # 执行for循环10000次
    for i in range(10000): 
        a.append(0) 
    # 停止时间
    stop = time.time() 
    forLoopTime.append(stop-start) 
  
    # 开始时间
    start = time.time() 
    # 声明空列表
    a = [] 
    i = 0
    # 执行while循环10000次
    while(i<10000): 
        a.append(0) 
        i+= 1
    stop = time.time() 
    whileLoopTime.append(stop-start) 
  
    start = time.time() 
    # 使用列表推导(List Comprehension) 来初始化列表
    a = [0 for i in range(10000)]  
    stop = time.time() 
    listComprehensionTime.append(stop-start) 
  
  
    start = time.time() 
    # 使用*运算符
    a = [0]*10000 
    stop = time.time() 
    starOperatorTime.append(stop-start) 
  
  
  
print("for循环所用的平均时间:" + str(sum(forLoopTime)/100)) 
print("while循环所用的平均时间:" + str(sum(whileLoopTime)/100)) 
print("列表推导所用的平均时间:" + str(sum(listComprehensionTime)/100)) 
print("* 运算符所用的平均时间: " + str(sum(starOperatorTime)/100))

출력:

Python에서 목록을 초기화하는 방법은 무엇입니까?

참고: 시간은 이 코드가 실행되는 플랫폼에 따라 다릅니다. 이 시간은 이러한 초기화 방법의 상대적 성능을 연구하는 데에만 사용됩니다.

● for 루프와 while 루프에 걸리는 시간이 거의 같다는 것을 알 수 있습니다.

●목록 이해의 성능은 for 및 while 루프보다 훨씬 우수하며 전자는 3~5배 빠릅니다. 이 차이의 또 다른 예는 1부터 1000까지의 숫자 목록을 만들 때 볼 수 있습니다. 목록 이해를 사용하는 것이 Append()를 사용하는 것보다 훨씬 낫습니다.

a = [i for i in range(1,1001)]

● * 연산자를 사용하는 것이 다른 방법보다 빠르므로 목록을 초기화하는 방법입니다

추천 관련 비디오 튜토리얼: "Python Tutorial"

위 내용이 이 글의 전체 내용입니다. 도움을 배우는 모든 사람에게 도움이 될 수 있습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 Python에서 목록을 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.