确实,您可以使用字典列表来做到这一点,但是您可能会发现使用命名字段查找信息更容易。在这种情况下,我建议将您的刮取数据存储在Pandas DataFrame
中。
你希望这样做:“人们可以在学校打字,打印学校所在的会议,或者可以选择整个会议并打印相应的学校名单”。
下面是使用熊猫和一些便利功能的例子。
首先,一些示例数据:
confs = ['ACC','Big10','BigEast','BigSouth','SEC',
'ACC','Big10','BigEast','BigSouth','SEC']
teams = ['school{}'.format(x) for x in range(10)]
links = ['www.{}.com'.format(x) for x in range(10)]
scrape = zip(confs,teams,links)
[('ACC', 'school0', 'www.0.com'),
('Big10', 'school1', 'www.1.com'),
('BigEast', 'school2', 'www.2.com'),
('BigSouth', 'school3', 'www.3.com'),
('SEC', 'school4', 'www.4.com'),
('ACC', 'school5', 'www.5.com'),
('Big10', 'school6', 'www.6.com'),
('BigEast', 'school7', 'www.7.com'),
('BigSouth', 'school8', 'www.8.com'),
('SEC', 'school9', 'www.9.com')]
现在转换成DataFrame
:
import pandas as pd
df = pd.DataFrame.from_records(scrape, columns=['conf','school','link'])
conf school link
0 ACC school0 www.0.com
1 Big10 school1 www.1.com
2 BigEast school2 www.2.com
3 BigSouth school3 www.3.com
4 SEC school4 www.4.com
5 ACC school5 www.5.com
6 Big10 school6 www.6.com
7 BigEast school7 www.7.com
8 BigSouth school8 www.8.com
9 SEC school9 www.9.com
在学校类型,得到会议:
def get_conf(df, school):
return df.loc[df.school==school, 'conf'].values
get_conf(df, school = 'school1')
['Big10']
在会议类型,得到学校:
def get_schools(df, conf):
return df.loc[df.conf==conf, 'school'].values
get_schools(df, conf = 'Big10')
['school1' 'school6']
从你的问题来看,你是否还希望与会议搜索时返回的学校相关的链接不清楚。如果是这样,只需更新get_schools()
到:
def get_schools(df, conf):
return df.loc[df.conf==conf, ['school','link']].values
听起来像是你想要一本字典'{'SEC':[{'UGA':'www.linka.com','Alabama':'www.linkc.com'等等}},'ACC ':[{'FSU':'www.linkb.com',等...}],...}' –
抱歉关于编辑。在某个iPad上打字可能会造成某些问题。 – Biggen
实际上,这听起来像是您想要一个数据库。尝试sqlite。 – Harvey