Создайте новый Объект списка в Python

Параллельное программирование было бы довольно легко, если Ваш подход мог бы работать. Но это не делает, айсберг, который снижает тот Титаник, является, например, клиентом Вашего класса, делающего это:

objectRef.MyProperty += 1;

гонка read-modify-write довольно очевидна, существуют худшие. Нет абсолютно ничего, что можно сделать для создания свойства ориентированным на многопотоковое исполнение кроме создания его неизменный. Именно Ваш клиент должен иметь дело с головной болью. Будучи вынужденным делегировать такую ответственность перед программистом, который должен маловероятно разобраться, это - Ахиллесова пята параллельного программирования.

11
задан SilentGhost 24 September 2009 в 09:09
поделиться

4 ответа

Не так-то просто понять ваш вопрос, тем более, что ваш код потерял форматирование, но вы можете довольно легко создавать новые объекты списка. Следующее назначает новый объект списка переменной recordList:

recordList = list()

Вы также можете использовать

recordList = []

[] и list () в этом случае эквивалентны.

16
ответ дан 3 December 2019 в 04:13
поделиться

Python сборщик мусора . Просто введите

recordList = []

, и у вас будет новый пустой список.

4
ответ дан 3 December 2019 в 04:13
поделиться

Не используйте del . Период. Это «продвинутая» штука.

from collections import defaultdict

mappedDictionay= defaultdict( list ) # mappedDictionary is a poor name
sectionGroupName= None

for record in recordCols:
    mappedDictionay[record[0]].append( record )
4
ответ дан 3 December 2019 в 04:13
поделиться

Вы можете использовать list () или просто [] , чтобы создать новый список. However, I think what you are trying to achieve can be solved simply by using grouby:

from itertools import groupby
mappedIterator = groupby(recordCols, lambda x: x[0])

or

from itertools import groupby
from operator import itemgetter
mappedIterator = groupby(recordCols, itemgetter(0))

if you prefer.

The groupBy function will return an iterator rather than a dictionary, where each item is of the form (category, sub-iterator-over-items-in-that-category).

If you really want to convert it into a dictionary like you have it in your code, you can run the following afterwards:

mappedDictionary = dict(( (x[0], list(x[1])) for x in mappedIterator ))
1
ответ дан 3 December 2019 в 04:13
поделиться
Другие вопросы по тегам:

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