파이썬에서 두 개의 리스트를 이용하여, 키 밸류형태의 딕셔너리로 변환하는 방법에 대해 알아보겠습니다~
list1 = ['aaa','bbb','ccc','ddd']
list2 = [11,22,33,44]
dict_list= dict(zip(list1,list2))
print(dict_list)
이렇게 리스트 두개를 zip으로 묶고 dict으로 바꿔주시면 됩니다
python에서 zip은 인덱스를 기준으로 리스트를 순서대로 가져온다고 생각하면 됩니다.
예제 코드를 보시죠
list1 = ['aaa','bbb','ccc','ddd']
list2 = [111,222,333,444]
for x,y in zip(list1, list2):
print(x,y)
이렇게 실행하시면 list1과 list2의 요소를 하나씩 순서대로 가져오는 걸 볼 수 있습니다.
리스트 2개와 zip을 이용하여 dictonary를 만드는 방법에 대해 알아봤는데요~
그럼 list 1개를 인덱스 기준으로 dict으로 변환하려면 어떻게 해야할까요??
그럼 1개의 리스트를 이용해서 인덱스를 기준으로 변환할 때는 어떻게 해야할까요??
이럴때에도 앞에서 활용한 zip을 이용하면 됩니다. 우리는 list의 인덱스를 기준으로 하나의 리스트를 만들어서 적용해보겠습니다.
list1 = ['aaa','bbb','ccc','ddd']
dict(zip(range(len(list1)),list1))
dict(zip(list1, range(len(list1))))
이렇게 하시면 첫번째의 코드는 인덱스:벨류 형태로 dict을 만들 수 있고요.
두번째 코드는 벨류:인덱스 형태로 dictonary를 만들 수 있습니다.
그리고 이번엔 dict zip이 잘 이해되지 않는 분들을 위해 for을 사용하는 경우를 보겠습니다.
list1 = ['aa','bb','cc','dd','ee']
list2 = [11,22,33,44,55]
dic_list = []
for i in range(len(list1)):
dic_list.append({'name':list1[i], 'value':list2[i]})
이렇게 하면 dic_list에 'name'에는 list1의 값을 순서대로 넣게되고
'value'에는 list2의 값을 순서대로 넣게 됩니다.
아래는 'name'이나 'value'없이 그냥 key:value형태로 넣을 때 입니다.
list1 = ['aa','bb','cc','dd','ee']
list2 = [11,22,33,44,55]
dic_list = []
for i in range(len(list1)):
dic_list.append({list1[i] : list2[i]})
이상 리스트를 이용하여 dictionary를 만들어보았습니다.
list to dataframe
data = pd.DataFrame(list(zip(name_l, place_l,duration_l, percent_l)), columns = ['Name', 'Place','Duration', 'Percent'])
'DEVELOPMENT > PYTHON' 카테고리의 다른 글
python lambda map filter reduce (0) | 2020.09.13 |
---|---|
파이썬 순열 조합 곱집합 구하기 (0) | 2020.08.31 |
python 패키지 관리 freeze 사용법 (1) | 2020.06.09 |
python tuple to dict (0) | 2020.05.05 |
dataframe sort multi columns (0) | 2020.04.17 |
댓글