2016-11-11 75 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)