wariwari

wariwari

wariwariwariwari· 4년

질문파이썬 csv파일 불러 온 뒤 비교하기 질문있습니다.

import csv history_file = open('numsonly.csv','r') history_nums = csv.reader(history_file) for line in history_nums: print(line) history_file.close() (13,23,26,31 5,7,13,20 27,36,37,41 3,13,16,23 7,11,16,21) 이렇게 각 줄에 4개의 숫자가 있는 csv파일을 불러 온 뒤, a=[[7,11,16,31], [5,7,13,20], [4,6,13,20], [3,13,16,23], [5,7,60,61]] 해당 a와 csv파일을 비교한 뒤에  1. 완전히 똑같은 경우 리스트에서 제거. => 결과값 : a=[[7,11,16,31], [4,6,13,20], [5,7,60,61]]   2. csv파일의 각 라인과 a의 전체를 비교 후 csv의 1개의 라인 4개의 숫자 중 3개 이상의 수가 a에 포함되는 경우 제거.  => 결과값 : a=[[5,7,60,61]]   다음을 어떻게 해결해야할까요? 어렵네요. 
1.6K
0
wariwariwariwari· 4년

질문파이썬 연속하는 수 찾는 방법이 뭘까요??

a=[[1,2,3,4,5],[10,11,12,14,18],[7,9,20,21,23],[23,24,27,29,60]] 이렇게 2차원 리스트가 있습니다.  이 중에서 연속하는 수가 3개 이상일 경우(1,2,3 / 7,8,9...) 리스트에서 제거한다.  라고 했을 때.  for문과 if문으로 해결 가능한가요??    
1.1K
0
wariwariwariwari· 4년

질문파이썬으로 처음 코딩 공부를 시작하는데 어렵네요..

 이번에 파이썬을 시작으로 처음 코딩을 배우고 있습니다.   로또를 활용하여 리스트에서 모든 경우의 수를 뽑아내고   그 중 제가 원하는 범위만 추출하는 방식으로 프로그램을 만들고 있습니다.   그런데 이렇게 계속 if문을 반복해서 쓰는건 아닌 것 같아서 조언을 듣고 싶습니다.   보다 좋은 코드를 알려주시면 감사하겠습니다.  nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, 41,42,43,44,45 ] answer = [] def nCr(n, ans, r):     if n == len(nums):         if len(ans) == r:             temp = [i for i in ans]             answer.append(temp)         return     ans.append(nums[n])     nCr(n + 1, ans, r)     ans.pop()     nCr(n + 1, ans, r) nCr(0, [], 6) for row in answer:      if 21<sum(row)<37 :       if 14<row[0]+row[1]+row[2]<91 :           if 59<row[3]+row[4]+row[5]<131 :             if 29< max(row)+min(row) <66 :              if 16< max(row)-min(row) <44 :                 print(len(row))                    print(row[0], row[1], row[2],row[3], row[4],row[5])  &#39;&#39;&#39;             - 모든 경우의 수 // - 총합 90~200 // - 가장 높은 수와 낮은 수의 합(30~65) // - 가장 높은 수와 낮은 수의 차(17~43) // - 1, 2, 3 자리 수 합 15~90 // - 4,5,6 자리 수 합 60~130 // - 첫수합(십의 자리 수 더한 총 합 3~19) - 끝수합(일의 자리 수 더한 총 합 11~38) - 일의 자리가 3개 이상 같은 경우 제거 - 3의 배수 (6개 중 1개~4개 포함) - 5의 배수 (6개 중 0개~3개 포함) - 25 이상만 제거  - 25 이하만 제거  - 홀수만 제거 %2 = 1 - 짝수만 제거 %2 = 0 - 연속수 (4자리 이상 연속/ 1234,891011…) - 같은 자릿수 4개 이상 제외  &#39;&#39;&#39; #print(answer) #경우의 수 리스트 print(len(answer)) #총 경우의 갯수 from pprint import pprint pprint(answer, indent=1, width=30)  
1.1K
2
0
wariwari
wariwari·2021-10-10
감사합니다~~ㅎㅎ 처음 배우다보니 뭐가 맞는지도 잘 모르겠어서요ㅎㅎ 감사합니다!!
sonaki84
sonaki84·2021-10-10
if문의 조건들이 특성이 다 다르기 때문에 if문이나 switch문을 여러개 쓴다고해서 문제될 것 같아 보이진 않고 괜찮을 것 같아요☺️