我有list
标题,如下所示:
data = [['name', 'year', 'turn_over', 'net_result']]
现在我想将以下内容附加到data
:
name = soup.find('title').get_text().strip()
year = soup.find('span').get_text().strip()
turn_over = soup.find('div').get_text().strip()
net_result = soup.find('td').get_text().strip()
我以为我可以使用:
data.extend(zip(name, year, turn_over, net_result))
自name
,year
等。是字符串,zip
在每个字符上分割它们。我可以append
所有strings
分隔lists
,然后在这些列表中使用data.extend(zip())
:
all_names = []
all_years = []
all_turn_overs = []
all_net_results = []
all_names.append(name)
all_years.append(year)
all_turn_overs.append(turn_over)
all_net_results.append(net_result)
data.extend(zip(all_names, all_years, all_turn_overs, all_net_results))
但是有更聪明的方法吗?
答案 0 :(得分:0)
我会使用没有标题的元组列表来执行此操作。标题将隐含在数据结构中,并在程序代码中显式。
data=[]
data.append((name, year, turn_over, net_result))
如果数据对象中的字段名称很重要,则可以使用命名元组。
import collections
Webpage = collections.namedtuple('Webpage', 'name year turn_over net_result')
data=[]
data.append(Webpage(name, year, turn_over, net_result))
答案 1 :(得分:0)
也许你可以使用dict为你的数据:
data = {'name':[string1,string2,...],
'year':[name':[string1,string2,...],
'turn_over':[name':[string1,string2,...],
'net_result':[name':[string1,string2,...]
}
from collections import defaultdict
data = defaultdict(list)
data['name'].append(name_sting)
data['year'].append(year_sting)
data['turn_over'].append(turn_over_sting)
data['net_result'].append(net_result_sting)