Сортировка кортежа, который содержит кортежи

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

let reference = Database.database().reference()
reference.child("users").queryOrdered(byChild: "username").queryEqual(toValue: "yourNewUserName").observeSingleEvent(of: .value) { (snapshot) in
    // if there is data in the snapshot reject the registration else allow it
}

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

12
задан Huuuze 21 October 2008 в 17:40
поделиться

4 ответа

from operator import itemgetter

MY_SORTED_TUPLE = tuple(sorted(MY_TUPLE, key=itemgetter(1)))

или без itemgetter:

MY_SORTED_TUPLE = tuple(sorted(MY_TUPLE, key=lambda item: item[1]))
22
ответ дан 2 December 2019 в 05:16
поделиться

Я достиг того же самого с помощью этого кода, но предложение является большим.Спасибо!

templist = [ (line[1], line) for line in MY_TUPLE ] 
templist.sort()
SORTED_MY_TUPLE = [ line[1] for line in templist ]
-2
ответ дан 2 December 2019 в 05:16
поделиться

От сортировки, МИНИ-КАК К

Часто существует встроенное, которое будет соответствовать Вашим потребностям, таким как str.lower (). Модуль оператора содержит много функций, полезных с этой целью. Например, можно отсортировать кортежи на основе их второго элемента с помощью operator.itemgetter ():

>>> import operator 
>>> L = [('c', 2), ('d', 1), ('a', 4), ('b', 3)]
>>> map(operator.itemgetter(0), L)
['c', 'd', 'a', 'b']
>>> map(operator.itemgetter(1), L)
[2, 1, 4, 3]
>>> sorted(L, key=operator.itemgetter(1))
[('d', 1), ('c', 2), ('b', 3), ('a', 4)]

Надеюсь, это поможет.

7
ответ дан 2 December 2019 в 05:16
поделиться
sorted(my_tuple, key=lambda tup: tup[1])

Другими словами, при сравнении двух элементов кортежа Вы сортируете, вид на основе возвращаемого значения функции передал как основной параметр.

2
ответ дан 2 December 2019 в 05:16
поделиться
Другие вопросы по тегам:

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