파이썬 for구문으로 두개의 list에서 데이터를 뽑고 텍스트 파일에 쓰기.
조회수 2197회
ocost = [10,11,40,4,5] buy_list = ['a32','a11','a45','b30','c43']
def update_list(self, list):
f = open("list1.txt", "at")
for opencost in ocost:
for code in buy_list:
f.writelines("코드;"+ code+ "비용;"+ opencost+ ";\n")
안녕하세요 파이썬 코드 초짜 입니다. 예를들어 ocost와 buy_list 라는 리스트를 ocost = [10,11,40,4,5] buy_list = ['a32','a11','a45','b30','c43']
코드;a32;비용;10 코드;a11;비용,11 코드;a45;비용;40 코드;b30;비용;4 코드;c43;비용;5 라는 내용의 텍스트 파일로 만들고 싶은데요. 리스트를 합치지 않고 각각 데이터를 뽑아서 집어넣는 방법 좀 알고 싶습니다. for opencost in ocost and for code in buy_list: 등 별 생각을 다해봤는데 초보머리에서 도무지 떠오르지가 않네요.
-
(•́ ✖ •̀)
알 수 없는 사용자
2 답변
-
ocost
배열의x
번째 원소를buy_list
배열의x
번째 원소와 매칭시키는 거죠? 만약 그렇다면 이렇게 하면 될 것 같은데요.for x in range(0, len(buy_list)) : f.writelines("코드;" + buy_list[x] + ";비용;" + str(ocost[x]) + ";\n")
-
아래와 같은 방법도 있습니다.
buy_list = ['a32','a11','a45','b30','c43'] ocost = [10,11,40,4,5] pairs = dict(zip(buy_list, ocost)) # key=value 형태로 dict 를 생성 lines = map(lambda item:'코드;{};비용;{};\n'.format(item[0], item[1]), pairs.items()) # 코드:{};비용:{}; 형태의 템플릿으로 저장할 문자열 리스트를 생성 with open('new_file.txt', 'wt') as f: f.writelines(lines) # 파일 생성후 문자열 저장
- 헉 제답변이 갑자기 오징어로 보여서 지우러 갑니다 엽토군 2018.9.20 18:21
- 엥 오징어 아닙니다-.- 저도 학습차원에서 하는 것이니 신경쓰지 마세요. 제방법이 좋은 방법이라는 근거는 어디에도 없어요. 정영훈 2018.9.20 18:54
- 영훈님 상세한 답변 감사드립니다. 제가 리스트를 합치지 않고 해결할 방법이 궁금 했어서 채택은 엽토군님 답변으로 했어요; 알 수 없는 사용자 2018.9.20 22:20
댓글 입력