2016-11-11 120 views
0

我有一个list与头看起来像这样列出:Python的附加价值与头

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 et.c.是字符串,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

为什么它是一个列表中的列表? –

+0

是的,对不起。试图添加多行。 – user3471881

回答

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)) 
0

也许你可以使用字典为您的数据:

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)