Я пытаюсь выяснить, можно ли настроить запрос, который будет действовать как -то вроде model.objects.values_list ('id', 'investion_model__ids') и вернуть что -то вроде [(1L, [2L, 6L]), (2L, [1L,]), (3L, [1L, 3L, 4L, 5L], [//code - P. />
class Player(models.Model):
positions = models.ForeignKey(Position)
...
>>> # players 31, 32, 33 play multiple positions, and I want a result to be
>>> # [(player.id, [a list of position.id for all positions]), ...]
>>> Player.objects.filter(id__in=[31, 32, 33]).values_list('id', 'positions__id')
[(31L, 13L), (31L, 7L), (32L, 13L), (32L, 8L), (33L, 13L), (33L, 7L)]
This Values_list Запрос производит несколько кортежей для одного и того же идентификатора значение, две записи для id = 31 , id = 32 и id = 33 . Когда я делаю запрос values_list на конкретном игроке (
id=31< /code>), я получаю список идентификаторов позиции, которые я хотел бы: < /p>
>>> p31 = Player.objects.get(id=31)
>>> position_ids = p31.positions.values_list('id', flat=True)
>>> type(position_ids)
>>> position_ids
[13L, 7L]
>>>
>>> # I want [(31L, [13L, 7L]), (32L, [13L, 8L), (33L, [13L, 7L)]
>>> # Without have to do something like a list comprehension:
>>> # [(p.id, list(p.positions.values_list('id', flat=True))
>>> # for p in Player.objects.filter(id__in=[31, 32, 33])]
< /code>
Без сомнения, понимание списка даст результат, который я хотел бы. Я хотел избежать нескольких отдельных запросов в базе данных с каждым списком (p.positions.values_list ('id', flat = true))
, вынуждая разрешение ValueStistQueryset в фактический список. Конечно, если я не приведу резолюцию, операция в результате понимания списка, по -видимому, выполнит свежий p.positions.valuse_list ('id', flat = true) Query.
Я пытаюсь выяснить, можно ли настроить запрос, который будет действовать как -то вроде model.objects.values_list ('id', 'investion_model__ids') и вернуть что -то вроде [(1L, [2L, 6L]), (2L, [1L,]), (3L, [1L, 3L, 4L, 5L], [//code - P. /> [code]class Player(models.Model): positions = models.ForeignKey(Position) ...
>>> # players 31, 32, 33 play multiple positions, and I want a result to be >>> # [(player.id, [a list of position.id for all positions]), ...]
This Values_list Запрос производит несколько кортежей для одного и того же идентификатора значение, две записи для id = 31 , id = 32 и id = 33 . Когда я делаю запрос values_list на конкретном игроке ([code]id=31< /code>), я получаю список идентификаторов позиции, которые я хотел бы: < /p>
>>> position_ids [13L, 7L] >>> >>> # I want [(31L, [13L, 7L]), (32L, [13L, 8L), (33L, [13L, 7L)] >>> # Without have to do something like a list comprehension: >>> # [(p.id, list(p.positions.values_list('id', flat=True)) >>> # for p in Player.objects.filter(id__in=[31, 32, 33])] < /code>
Без сомнения, понимание списка даст результат, который я хотел бы. Я хотел избежать нескольких отдельных запросов в базе данных с каждым списком (p.positions.values_list ('id', flat = true)) [/code], вынуждая разрешение ValueStistQueryset в фактический список. Конечно, если я не приведу резолюцию, операция в результате понимания списка, по -видимому, выполнит свежий p.positions.valuse_list ('id', flat = true) Query.
Если я использую такие данные
импортирую networkx как nx
G = nx.Graph()
G.add_nodes_from( )
G.add_edges_from( )
print(list(nx.connected_components(G)))
Все работает нормально.
Но что, если мне нужно получить связанные значения из нескольких...
Я работаю над проблемой: мне нужно объединить два отсортированных связанных списка в один отсортированный связанный список. Оба связанных списка отсортированы в порядке возрастания.
Я хотел бы добиться этого с временной сложностью O(n), где n —...
Как объединить два приведенных выше списка и создать новый список из списка List1 в качестве ключа и списка List2 в качестве значений?
Например:
response : {