Если вы хотите получить несколько значений атрибутов из источника выше, вы можете использовать findAll
и понимание списка, чтобы получить все, что вам нужно:
import urllib
f = urllib.urlopen("http://58.68.130.147")
s = f.read()
f.close()
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(s)
inputTags = soup.findAll(attrs={"name" : "stainfo"})
### You may be able to do findAll("input", attrs={"name" : "stainfo"})
output = [x["stainfo"] for x in inputTags]
print output
### This will print a list of the values.
sorted_by_second = sorted(data, key=lambda tup: tup[1])
или:
data.sort(key=lambda tup: tup[1]) # sorts in place
Я бы использовал ответ Стивена . Для полноты, вот шаблон DSU (decorate-sort-undecorate) со списком:
decorated = [(tup[1], tup) for tup in data]
decorated.sort()
undecorated = [tup for second, tup in decorated]
Или, более кратко:
[b for a,b in sorted((tup[1], tup) for tup in data)]
Как отмечалось в Python Sorting HowTo , в этом нет необходимости, начиная с Python 2.4. , когда стали доступны ключевые функции.