Python将值附加到带有标题的列表中

时间:2016-11-11 11:01:04

标签: python beautifulsoup

我有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))

nameyear等。是字符串,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))

但是有更聪明的方法吗?

2 个答案:

答案 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)