programming

파이썬 : 리스트 값 초기화 하기


by Kitle · 2020. 09. 09.



파이썬으로 리스트 값을 개발 또는 테스트 목적으로 초기화 해보겠습니다.

보통 더미 데이터를 만들거나 여러가지 목적으로 사용되죠.


가장 많이 사용하는 방법이 for 문을 사용하여 원하는 값을 반복시켜 넣는 방법을 사용할텐데요.

이보다 훨씬 빠르고 간편하고 쉬운 방법으로 초기화 해보도록 하겠습니다.


1. 리스트를 같은 값으로 원하는 길이 만큼 만들고 싶은 경우

a = [0] * 10

파이썬에서는 리스트에 *곱 연산이 가능합니다. 따라서 이런식으로 깔끔하게 만들 수 있습니다.


결과는 다음과 같습니다.

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

뒤에 숫자만 바꿔 준다면 원하는 길이 만큼 쉽게 데이터를 만들 수 있을 겁니다,


나쁜 예)

answer = [0] * len(range(10))
비슷한 역할을 수행하지만 불필요한 연산들이 들어가 있습니다.
for문을 통해 list에 append 도 가능하지만 작성면이나 성능에 있어서는 위의 추천 예가 좋을 것으로 보입니다,


2. 리스트를 다른 값으로 원하는 길이 만큼 만들고 싶은 경우

a = list(range(10))

다른 값으로 만들기 위해서 이번에는 range를 이용하여 만들어 보았습니다,


결과는 다음과 같습니다.

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

물론 List Comprehension 도 가능합니다.
c = [x for x in range(10)]
결과는 위와 동일합니다. 그러나 쓰기도 사용도 위의 예시가 편리 하겠습니다.

3. 보너스로 dict key, value  초기화 하기
dummy_dict = {}
[dummy_dict.setdefault(item, item) for item in range(10)]
print(dummy_dict)

dummy_dict2 = {}
[dummy_dict2.setdefault(item, None) for item in range(10)]
print(dummy_dict2)

dummy_dict3 = {}
[dummy_dict3.setdefault(item, '') for item in range(10)]
print(dummy_dict3)

이번에는 리스트가 아닌 dict 초기화를 해보겠습니다.

key는 다르고 value는 각각 다르게, None으로, ''로 모두 동일하게 3가지 방식으로 초기화 해보았습니다.

값은 다음과 같습니다.

{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
{0: None, 1: None, 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None}
{0: '', 1: '', 2: '', 3: '', 4: '', 5: '', 6: '', 7: '', 8: '', 9: ''}


잘못된 방법이 있거나 더 쉽고 좋은 방법이 있는 경우 게시판으로 알려주세요. 감사합니다.