리스트 안의 숫자들 총합을 구하고 싶어서 질문 들려요!
조회수 490회
import numpy as np
import os
import re
seoul_file = open("seoul.txt", "r", encoding = "utf8")
seoul = seoul_file.read().splitlines()
print("서울 데이터 받기 완료")
seoul_file.close()
time12_seoul = []
date12_s = []
date12_s2 = []
def clean_text(inputString): #특수문자 제거
text_rmv = re.sub('[-=+,#/:^.@*\"※~ ㆍ!』None‘|}\(\)\[\]`\'…》\”\“\’·]', '', str(inputString))
return text_rmv
def list_chunk(lst, n): #리스트 분할하기(날짜별로 나눌 때)
return [lst[i:i+n] for i in range(0, len(lst), n)]
def None_del(n,lst):
lst.clear()
for a in n:
a = list(filter(None, a))
lst.append(a)
return lst
for s_time in seoul:
#서울의 12시 데이터만 담음
if '12:00' in s_time:
time12_seoul.append(s_time)
for s_data12 in time12_seoul:
list_s = s_data12.split(',')
del list_s[0]
del list_s[1]
Value_seoul12 = list_s[0].split(":")
del Value_seoul12[0]
Value_seoul12 = clean_text(Value_seoul12)
if Value_seoul12 == '':
date12_s.append(Value_seoul12)
continue
else:
Value_seoul12 = (Value_seoul12)
date12_s.append(Value_seoul12)
#print(Value_seoul12)
Value2_seoul12 = list_s[1].split(":")
del Value2_seoul12[0]
Value2_seoul12 = clean_text(Value2_seoul12)
if Value2_seoul12 == '':
date12_s2.append(Value2_seoul12)
continue
else:
Value2_seoul12 = (Value2_seoul12)
date12_s2.append(Value2_seoul12)
#print(Value2_seoul12)
s_12 = list_chunk(date12_s, 40)
s2_12 = list_chunk(date12_s2, 40)
date12_s = None_del(s_12, date12_s)
date12_s2 = None_del(s2_12, date12_s2)
질문
이런식으로 코딩을 해서 파일에서 원하는 데이터를받았는데 int(
date12_s)
로 묶어서 sum
을 이용해서 리스트 안의 숫자의 총합을 구해 보고, map
으로 int
형을 만들어도 계속 합이 안 구해져서 질문 드려요..
지금 해야하는거는 date12_s
와 date12_s2
의 각 각의 총합을 구해하는건데 어디서 부터 무엇이 문제인지 잘 몰라서 물어 봐요!
1 답변
-
- 코드를 자세히 들여다보지 않아서 정확히 date_12s 가 최종적으로 어떤 게 나올지는 모르겠습니다.
- 단, 텍스트파일을 읽어서, 그걸 클린하고, 파싱해서 어떤 숫자모양의 문자열의 리스트가 만들어지리라 생각합니다. 왜냐하면, 코드 중간에
int
등 문자열로 수치로 바꾸어 주는 함수가 보이지 않기 때문입니다. - 그렇다면,
date_s12
의 원소들이 문자열이기 때문에,sum(date_s12)
같은 코드가 동작할 수 없겠습니다.sum(map(int, date_s12))
처럼 먼저 원소들을 int 등으로 수치로 바꾼 후에 총합을 구하세요.
댓글 입력