Python:获取特定的列表元素

时间:2016-03-28 20:00:52

标签: python list python-2.7

所以我从HTML-Page制作了一个元素列表,并计算了这些元素的频率。但我只需要一些特定的元素,如" bb"和" nw"。所以我不知道他们在列表中的位置,我不知道如何将它们与其他元素分开。

到目前为止,这是我的代码:

from bs4 import BeautifulSoup
import urllib2
import re
import operator
from collections import Counter
from string import punctuation

source_code = urllib2.urlopen('https://de.wikipedia.org/wiki/Liste_von_Angriffen_auf_Fl%C3%BCchtlinge_und_Fl%C3%BCchtlingsunterk%C3%BCnfte_in_Deutschland/bis_2014')
html = source_code.read()
soup = BeautifulSoup(html, "html.parser")

text = (''.join(s.findAll(text=True))for s in soup.findAll('a'))

c = Counter((x.rstrip(punctuation).lower() for y in text for x in y.split()))

bb,nw=operator.itemgetter(1,2)(c.most_common())
print(bb,nw)

感谢您的帮助和任何提示。

1 个答案:

答案 0 :(得分:2)

您可以使用过滤器:

relevant_items = ('bb', 'nw')
items = filter(lambda x: x[0] in relevant_items, c.most_common())

或者,您已经可以过滤理解:

c = Counter((x.rstrip(punctuation).lower() for y in text for x in y.split() if x in relevant_items))