Вот как это работает в 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
)
Я думаю, что вы должны значительно повысить производительность для больших коллекций, выполнив объединение (которое использует хеш-таблицы внутри) вместо вложенных циклов.
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());