элементы списка сортировки в python в порядке возрастания [duplicate]

align-self: flex-end; только идет «столбец», в вашем случае у вас есть два варианта:

1) justify-content: space-between; на .container, скрипт

2) удалите align-self на обоих элементах и ​​используйте margin-left: auto; на .b, скрипт

1)

.container {
      border: 2px solid;
      height: 500px;
      display: flex;
      flex-direction: row; 
      justify-content: space-between;
    }
    .box {
      border: 1px solid;
      height: 200px;
      width: 50px;
    }
    .a {
      background-color: red;
    }
    .b {
      background-color: cyan;
    }

2 )

.container {
  border: 2px solid;
  height: 500px;
  display: flex;
  flex-direction: row; 
}
.box {
  border: 1px solid;
  height: 200px;
  width: 50px;
}
.a {
  background-color: red;
}
.b {
  background-color: cyan;
  margin-left: auto;
}

РЕДАКТИВАЙТЕ теперь, когда вы редактировали свой вопрос в виде трех ящиков, вы можете посмотреть на этот скрипт ,

.a {
  background-color: red;
}
.b {
  background-color: cyan;
}
.c {
  background-color: deepskyblue;
  margin-left: auto;
}

10
задан Nathan Fellman 7 October 2009 в 23:13
поделиться

5 ответов

Вы можете сортировать ключи так, как хотите, разбивая их на «.». и затем преобразование каждого из компонентов в целое число, например:

sorted(mydict.keys(), key=lambda a:map(int,a.split('.')))

, который возвращает это:

['0',
 '1',
 '2.0',
 '2.1',
 '3',
 '4.0.0',
 '4.0.1',
 '5',
 '10',
 '11.0',
 '11.1',
 '12.0',
 '12.1.0',
 '12.1.1']

Вы можете перебирать этот список ключей и вытягивать значения из вашего словаря по мере необходимости.

Вы также можете сортировать результат mydict.items (), очень похожим:

sorted(mydict.items(), key=lambda a:map(int,a[0].split('.')))

Это дает вам отсортированный список (ключ , value), например:

[('0', 10),
 ('1', 23),
 ('2.0', 321),
 ('2.1', 3231),
 ('3', 3),
 # ...
 ('12.1.1', 2)]
18
ответ дан Ian Clelland 21 August 2018 в 00:35
поделиться
  • 1
    И, конечно, вам не нужно использовать лямбда, вы можете определить функцию обычным способом и передать имя. – steveha 7 October 2009 в 23:25
  • 2
    Быстрее, чем версия компаратора (меньше вызовов конверсий / функций). – bobince 7 October 2009 в 23:29

Я бы выполнил поиск по «сортировке словаря python» и взглянул на ответы. Я бы дал PEP-265 прочитанное. Функция sorted() - это то, что вы ищете.

2
ответ дан Community 21 August 2018 в 00:35
поделиться
  • 1
    Лучше поставить ключевую функцию, как делает Ян. Ключевая функция вызывается один раз для каждого элемента, функция cmp вызывается каждый раз, когда сортировка сравнивается. – John La Rooy 7 October 2009 в 23:25
  • 2
    @gnibbler: Да, я понял, что после прочтения ответа Яна ... Я думал об удалении моего ответа, но я думаю, что это может быть полезно для кого-то, для которого требуется более сложное сравнение, которое невозможно сделать, передав простой key. – sth 7 October 2009 в 23:32

Для развлечения & amp; полезность (в основном для googling ppl):

f = lambda i: [int(j) if re.match(r"[0-9]+", j) else j for j in re.findall(r"([0-9]+|[^0-9]+)", i)]
cmpg = lambda x, y: cmp(f(x), f(y))

используется как sorted(list, cmp=cmpg). Кроме того, регулярные выражения могут быть предварительно скомпилированы (редко необходимо, хотя, фактически, с кэшированием re-модуля). И, может быть (легко) изменено, например, включить отрицательные значения (добавьте -? в num regex, возможно) и / или использовать значения float.

Это может быть не очень эффективно, но даже при этом это очень полезно.

И, uhm, его можно использовать как key = для sorted () тоже.

1
ответ дан HoverHell 21 August 2018 в 00:35
поделиться

На веб-сайте python есть хороший сортирующий HOWTO: http://wiki.python.org/moin/HowTo/Sorting . Это дает хорошее представление о сортировке и обсуждает различные методы адаптации результата сортировки к вашим потребностям.

0
ответ дан jonasberg 21 August 2018 в 00:35
поделиться
2
ответ дан Community 31 October 2018 в 19:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: