2017-10-23 18 views
0

특히, 미국의 특정 주에서 모집단 데이터를 .csv 파일에서 가져 오는 기능이 있습니다. 상태 코드는 목록의 첫 번째 [0] 요소이므로 AK 또는 MS, MT 등이됩니다 (상태, 카운티, 인구 등)가있는 튜플로 저장되고 목록에 추가됩니다. data_list [].특정 요소가 들어있는 경우에만 어떻게 튜플에서 데이터를 가져 옵니까?

그런 다음 특정 상태 나 "all"을 입력하여 모든 데이터를 보는 옵션에 대한 입력을 요구합니다. 각 튜플을 통해 원하는 상태 만 추가하려면 어떻게해야합니까? 여기

는 지금까지 (내가 (물론 주,이 전에 다른 기능을 가지고 할 수 있습니다 무슨이다) 그러나 그들 모두는이 시점에서 잘 작동하는 것 : 어떤 설명이 있다면

STATES={'AK','AL','etc.','etc.'} 
state = input("\nEnter state code or 'all' or 'quit': ") 
def extract_data(data_list,state): 
    state_list=[] 
    for tup in data_list: 
     if state=="all": 
      state_list= data_list 
     if state in STATES: 
      if tup[0]==state: 
       state_list.append(tup) 
    print(state_list) 

다른 함수에서 필요하지만 필자는이 함수를 사용하여 원하는 상태뿐만 아니라 모든 데이터를 반환합니다.

답변

0

이미 알고 있을지 모르지만 약간의 입력을 좋아할 것입니다. 변경됨 :

STATES={'AK','AL','etc.','etc.'} 
state = input("\nEnter state code or 'all' or 'quit': ") 
def extract_data(data_list,state): 
    state_list=[] 
    tup_data=[] 
    for tup in data_list: 
     if state=="all": 
      state_list= data_list 
     if state in STATES: 
      if tup[0]==state: 
       tup_data=tup 
       state_list.append(tup_data) 
    print(state_list) 

특정 상태에 대한 데이터를 인쇄 했으므로 필요한 모든 것입니다. 그러나 개선이나 그와 비슷한 것에 대한 피드백은 언제나 환영합니다.

3

당신은 좋은 거래를 더 깨끗하게 지능형리스트

def extract_data(data_list, state='all'): 
    if state == 'all': 
     return data_list 
    return [t for t in data_list if t[0] == state] 
를 사용하여이 작업을 수행 할 수 있습니다