【发布时间】:2015-03-12 01:20:52
【问题描述】:
当我尝试在 python 中使用 sorted() 函数时,它只会按字母顺序对每个数组中的元素进行排序,因为前 3 个输出是:
[u'A', u'a', u'a', u'f', u'g', u'h', u'i', u'n', u'n', u's', u't']
[u'N', u'a', u'e', u'g', u'i', u'i', u'r']
[u'C', u'a', u'e', u'm', u'n', u'o', u'o', u'r']
这些应该分别是阿富汗、尼日利亚和喀麦隆,但它们只在自己的数组中排序。
我的代码哪里出错了?
import urllib2
import csv
from bs4 import BeautifulSoup
url = "http://en.wikipedia.org/wiki/List_of_ongoing_armed_conflicts"
soup = BeautifulSoup(urllib2.urlopen(url))
#f= csv.writer(open("test.csv","w"))
#f.writerow(["location"])
def unique(countries):
seen = set()
for country in countries:
l = country.lower()
if l in seen:
continue
seen.add(l)
yield country
for row in soup.select('table.wikitable tr'):
cells = row.find_all('td')
if cells:
for location in cells[3].find_all(text=True):
location = location.split()
for locations in unique(location):
print sorted(locations)
#f.writerow([location])
【问题讨论】: