리스트 순회하면서 존재하는 원소를 더하는 방법이 궁금합니다.
조회수 807회
data_list = [[apple, 5], [grape, 3], [apple, 2]]
result_data = []
check_list = []
for item in data_list:
if item[0] not in check_list:
result_data.append(item)
check_list.append(item[0])
else:
for result_item in result_data:
if result_item[0] == item[0]:
result_item[0] += item[0]
리스트에서 같은 과일 찾아서 개수 더하는 경우에 위 코드처럼 하니까 리스트 원소 개수가 많은 경우에 너무 시간이 오래 걸립니다. 저렇게 안하고 빠르게 할려면 어떻게 코드를 고쳐야 하나요?
2 답변
-
data_sum = {} for 과일, 갯수 in data_list: data_sum[과일] = data_sum.get(과일, 0) + 갯수
-
import pandas as pd data_list = [['apple', 5], ['grape', 3], ['apple', 2]] df = pd.DataFrame(data_list) res = df.groupby(by=[0]).sum() for idx in res.index: print('{0}:{1}'.format(idx, res.loc[idx]))
Pandas를 활용하시면 쉽게 원하시는 걸 하실 수 있습니다. 도움이 되셨길 바랍니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력