[데이터사이언스] - Diary18

Pream·2022년 4월 8일
post-thumbnail

리스트안에 있는 각 튜플을 변형해보자
기존의 자료 형태다.

[('2022-04-07T02:00:00Z', 23),
 ('2022-04-07T02:00:00Z', 17),
 ('2022-04-07T01:00:00Z', 24)]

이것을 다음과 같은 형태로 만들어보자.

[{'2022-04-07T02:00:00Z' : 23},
[{'2022-04-07T02:00:00Z' : 17},
{'2022-04-07T01:00:00Z' : 24}]

자세히 살펴보면 리스트 내부에 튜플들이 배치 되어있다.
그리고 최종 결과물은 리스트는 그대로 있고 내부에 튜플만 딕셔너리 형태로 바뀌어있다.

그렇다면 어떻게 코드를 짜야할까?
다음과 같은 순서로 진행해보자

  1. 각 튜플을 출력해 딕셔너리로 바꿔보자.
  2. 마지막은 비어있는 리스트에 append 함수를 써서 채워보자.
result = [('2022-04-07T02:00:00Z', 23),
 ('2022-04-07T02:00:00Z', 17),
 ('2022-04-07T01:00:00Z', 24)]
 
 우선 첫번째 값만 선택해 보면
 result[0] = ('2022-04-07T02:00:00Z', 23)
 
 이것을 바로 dict함수로 바꾸려고 하면 에러가 난다.
 
dict(result[0]) = 
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/var/folders/6g/6x7dscrs09708jmjw6npd9600000gn/T/ipykernel_2134/1589395842.py in <module>
----> 1 dict(results[0])

ValueError: dictionary update sequence element #0 has length 20; 2 is required

그래서 바로 dict 함수를 사용하지말고 리스트로 한번 감싸준뒤 dict함수를 이용하면 된다.

dict([result[0]]) = {'2022-04-07T02:00:00Z': 23}

문제없이 출력 된것을 확인할 수 있다.

마지막으로 for loop을 이용해 마무리하자.
lst = []
for i in range(len(result)):
	lst.append(dict([results[i]]))


다음과 같이 출력됨을 확인할 수 있다.

[{'2022-04-07T02:00:00Z': 23},
 {'2022-04-07T02:00:00Z': 17},
 {'2022-04-07T01:00:00Z': 24}]
profile
예비 데이터개발자

0개의 댓글