Снова вопрос про сортировку словаря по ключам. Сортирую его через sorted, но сортировка получается немного странная
def posname():
tuples = ()
name_dict = {}
i_file = open('baby1990.html', 'rU')
text = i_file.read()
tuples = re.findall(r'<td>(\d+)</td><td>(\w+)</td>\<td>(\w+)</td>',text)
for (rank, b_name, g_name) in tuples:
name_dict[rank] = (b_name, g_name)
b = name_dict.keys()
b = list(b)
b.sort()
for rank in b:
print(rank + '=>' + str(name_dict[rank]))
Грабим выводим построчно столбиками - первый столбик порядковый номер от 1 до 1000, 2 и 3 столбики имена. В итоге вывод выходит такой
1=>('Michael', ‘Jessica’)
10=>('Joseph', ‘Lauren’)
100=>('Gabriel', ‘Shelby’)
1000=>('Tate', ‘Peggy’)
101=>('Miguel', ‘Kaitlin’)
102=>('Seth', ‘Margaret’)
103=>('Douglas', ‘Brandi’)
104=>('Logan', ‘Krystal’)
105=>('Spencer', ‘Natasha’)
106=>('Derrick', ‘Casey’)
107=>('Wesley', ‘Bethany’)
108=>('Johnathan', ‘Haley’)
109=>('Frank', ‘Briana’)
11=>('Ryan', ‘Megan’)
110=>('Chase', ‘Kara’)
111=>('Philip', ‘Rachael’)
112=>('Lucas', ‘Miranda’)
Что не так?
Upd: я понял что не так - он сортирует ключи как строки, а не как int.
И как по-красивее преобразовать значения ключей в int'овские?