Python에서 빈 목록 만들기
Python에서 새로운 빈 목록을 만드는 가장 좋은 방법은 무엇입니까?
l = []
또는
l = list()
두 가지 이유로 물어봅니다.
- 기술적 이유, 어느 쪽이 더 빠른지에 대한 것입니다.(클래스를 작성하면 오버헤드가 발생합니까?)
- 코드 가독성 - 어떤 것이 표준 규칙입니까?
다음은 어떤 코드가 더 빠른지 테스트할 수 있는 방법입니다.
% python -mtimeit "l=[]"
10000000 loops, best of 3: 0.0711 usec per loop
% python -mtimeit "l=list()"
1000000 loops, best of 3: 0.297 usec per loop
그러나 실제로는 이 초기화가 프로그램의 극히 일부일 가능성이 높기 때문에 이를 걱정하는 것은 잘못된 생각일 수 있습니다.
가독성은 매우 주관적입니다.나는 더 좋다[]
하지만 알렉스 마르텔리처럼 매우 박식한 사람들은list()
발음할 수 있으니까
list()
본질적으로 보다 느리다[]
,왜냐면
심볼 룩업이 있습니다(목록을 다른 것으로 재정의하지 않았다면 python은 사전에 알 수 없습니다).
함수 호출이 있습니다.
그런 다음 반복 가능한 인수가 전달되었는지 확인해야 합니다(그래서 이 인수의 요소를 사용하여 목록을 작성할 수 있습니다). ps. 우리의 경우는 없지만 "if" 체크가 있습니다.
대부분의 경우 속도 차이는 실제적인 차이를 만들지 않습니다.
사용하고 있다[]
.
- 목록 표기가 단락 회로이기 때문에 더 빠릅니다.
- 아이템이 있는 리스트를 작성하는 것은 아이템이 없는 리스트를 작성하는 것과 비슷합니다.왜 차이가 있을까요?
잘은 모르지만 경험상 jpcgt가 맞는 것 같습니다.다음은 예를 제시하겠습니다.다음 코드를 사용하는 경우
t = [] # implicit instantiation
t = t.append(1)
통역기에서 t를 호출하면 목록 없이 "t"만 표시되며, 예를 들어 다른 항목을 추가할 경우 다음과 같이 표시됩니다.
t = t.append(2)
오류 "NoneType" 객체에 속성 "append"가 없습니다."가 표시됩니다.단, 다음 방법으로 목록을 작성할 경우
t = list() # explicit instantiation
잘 작동해요.
@Darkonaut의 답변을 강조 표시하기 위해서입니다.왜냐하면 좀 더 잘 보여야 할 것 같기 때문입니다.
new_list = []
또는new_list = list()
둘 다 괜찮은데(퍼포먼스 향상)append()
돌아온다None
그 결과 할 수 없습니다.new_list = new_list.append(something)
.
언급URL : https://stackoverflow.com/questions/2972212/creating-an-empty-list-in-python
'programing' 카테고리의 다른 글
Java의 Scanner 클래스를 사용하여 콘솔에서 입력을 읽는 방법은 무엇입니까? (0) | 2022.09.18 |
---|---|
휴지 상태 주석의 @UniqueConstraint 및 @Column(Unique=true) (0) | 2022.09.15 |
docker-param wordpress mysql 연결이 거부되었습니다. (0) | 2022.09.15 |
'가 뭐죠?YTowont9'? (0) | 2022.09.15 |
sql 구문의 php- 오류 (0) | 2022.09.15 |