具体来说,我有一些函数可以从.csv文件中获取美国特定州的人口数据。状态代码是列表中的第一个[0]元素,因此是AK,或MS,MT等。它被保存为具有诸如(州,县,人口等)之类的元组并添加到列表中; DATA_LIST []。
然后我提示输入特定的状态,或通过输入" all来查看所有数据的选项。"如何浏览每个元组并仅附加所需的状态?
这是我到目前为止所做的事情(请注意,在此之前我还有其他功能,以及main()但是它们在这一点上似乎都运行正常:
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 :(得分: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]
答案 1 :(得分: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)
那只打印了特定州的数据,所以我相信这就是我所需要的。但是,我喜欢任何改进或类似的反馈。