Как я могу отсортировать список по размеру? - PullRequest
0 голосов
/ 16 ноября 2018

Я новичок здесь и новичок в Python. Я хотел бы знать, если кто-нибудь знает, как отсортировать сгенерированный список по размеру.

У меня есть кусок кода здесь. Сортировка должна быть от маленькой к большой. 6,52, 26,4

for i in x:
    pfad = (i)
    title=(i)
    size = (i)
    bild = (i)

    liste=('<a href="' + pfad + '">' + title + '<br>;' + size + '<div><img src="' + bild + '" /></div></a></br>')
    print(liste)

    <a href="URL/">Title<br>;26.14;GB<div><img src="https://URL.jpg" /></div></a></br>
    <a href="URL/">Title<br>;6.52;GB<div><img src="https://URL.jpg" /></div></a></br>
    <and much more>

Я пытался с

liste = csv.reader(liste,delimiter=';')
liste = sorted(liste,key=operator.itemgetter(1))

for i in liste:
    print (i)

и другие вещи (лямбда и т. Д.), Но это не сработало. У кого-нибудь есть предложение?

Приветствие Трон

1 Ответ

0 голосов
/ 16 ноября 2018

Если вы уверены, что получите просто простой список, такой как [1, 2, 3, 4], тогда метод sorted() по умолчанию расположен в порядке возрастания, поэтому ключ не нужен.

liste = csv.reader(liste,delimiter=';')
liste = sorted(liste)

for i in liste:
    print (i)

в порядке убываниядобавьте reverse = True в метод сортировки.

Вы можете извлечь элемент из списка с помощью itemgetter(), например так:

>>> from operator import itemgetter
>>> z = ['foo', 'bar','qux','zoo']
>>> itemgetter(1)(z)

Если вы все еще хотите отсортировать с помощью itemgetter, вам нужно иметьпо крайней мере, двухмерный список

>>> a = [[1,2,1,2,3,4,5,6,3,4],[1,2,3,4],[4,5,7,8], [1,2,2,3,4,5,4,65,3,4,3,2,2]]
>>> sorted(a, key=itemgetter(3))
[[1, 2, 1, 2, 3, 4, 5, 6, 3, 4], [1, 2, 2, 3, 4, 5, 4, 65, 3, 4, 3, 2, 2], [1, 2, 3, 4], [4, 5, 7, 8]]
>>>

Но я предполагаю, что csv reader вернет словарь, наиболее вероятно

liste = csv.reader(liste,delimiter=';')
liste = sorted(liste, key=lambda k: k['name of the column'])

for i in liste:
    print (i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...