Сделайте два оператора foreach в один

Вот как это работает в python 3.x. В python2.x, zip вернул список кортежей, но для python3.x, zip ведет себя как itertools.izip, вел себя в python2.x. Чтобы восстановить поведение python2.x, просто создайте список из вывода zip:

z = list(zip(t,t2))

Обратите внимание, что в python3.x многие встроенные функции теперь возвращают итераторы, а не списки ( map, zip, filter)

5
задан Uwe Keim 6 March 2019 в 13:27
поделиться

1 ответ

Я думаю, что вы должны значительно повысить производительность для больших коллекций, выполнив объединение (которое использует хеш-таблицы внутри) вместо вложенных циклов.

var firstGroup = new Dictionary<string, List<string>>();
var request = new List<Request>();

var q = from element in request
        join y in firstGroup.SelectMany(x => x.Value) on element.Id equals y
        group y by element.Id into g
        select new { g.Key, g };

var equalityGroup = q.ToDictionary(x => x.Key, x => x.g.ToList());
0
ответ дан Magnus 6 March 2019 в 13:27
поделиться
Другие вопросы по тегам:

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