Вы не можете редактировать tuples
- они являются неизменяемыми. Вы можете использовать lists
и затем преобразовать все обратно в tuples
:
data = [('a', 'b'), ('a', 'c'),('d','f')]
new_data = []
for d in data # loop over your data
if new_data and new_data[-1][0] == d[0]: # if something in new_data and 1st
new_data[-1].extend(d[1:]) # ones are identical: extend
else:
new_data.append( [a for a in d] ) # not same/nothing in: add items
print(new_data) # all are lists
new_data = [tuple(x) for x in new_data]
print(new_data) # all are tuples again
Вывод:
[['a', 'b', 'c'], ['d', 'f']] # all are lists
[('a', 'b', 'c'), ('d', 'f')] # all are tuples again
Linq к SQL включается в Платформу Объекта, и это - то, куда та команда помещает свои энергии. Так, знание продвижения Платформы Объекта, вероятно, было бы Вашей первоочередной задачей (я сделаю его моей.)
Однако, если у Вас есть циклы, это не напрасно тратило время для понимания Linq к SQL. Существует все еще много о Linq, выражения, ленивая загрузка, задержали выполнение, и т.д. что Вы можете извлечь уроки из него и все еще будете применимы еще долго после того, как это было сплавлено в Платформу Объекта.
Я сомневаюсь, что поставщик LINQtoSQL уходит, тем не менее, это, действительно кажется, верно, что внимание на расширение LINQ будет с Платформой Объекта. Проблема состоит в том, что Платформа Объекта действительно ужасна в настоящее время, IMO. Я продолжаю разрабатывать использование приложений LINQtoSQL как ORM. Я полностью ожидаю, что поддержка языка будет там в будущем. Когда LINQtoEntities нагоняет, я могу изучить его, хотя LINQtoSQL в его текущем воплощении, кажется, соответствует (с несколькими тонкими настройками, я добавил меня) для моих потребностей. Это - особенно истинный использующий Динамический LINQ, который я раньше решал некоторые щекотливые вопросы, которые я не мог получить иначе (вид свойством намного более прост с Динамическим LINQ).
Вы могли бы хотеть рассмотреть использование nHibernate и LINQ для nHibernate.