Немного справочной информации:
, Как сказано, если Вы хотите иметь динамический набор вещей, использование List<T>
. Внутренне, Список использует массив для устройства хранения данных также. Тот массив имеет фиксированный размер точно так же, как любой другой массив. Как только массив объявляется как наличие размера, это не изменяется. Когда Вы добавляете объект к List
, он добавляется к массиву. Первоначально, эти List
начинается с массивом, которому я верю, имеет длину 16. То, когда Вы пытаетесь добавить 17-й объект к эти List
, что происходит, - то, что новый массив выделяется, это (я думаю), дважды размер старого, таким образом, 32 объекта. Тогда содержание старого массива копируется в новый массив. Таким образом, в то время как List
может казаться динамичным внешнему наблюдателю, внутренне это должно соответствовать правилам также.
И как Вы, возможно, предположили, копирование и выделение массивов не являются бесплатными, таким образом, нужно стремиться иметь как можно меньше из тех, и сделать это можно определить (в конструкторе List
лет) начальный размер массива, который в идеальном сценарии является просто достаточно большим для содержания всего, что Вы хотите. Однако это - микрооптимизация, и маловероятно, что это будет когда-либо иметь значение для Вас, но всегда хорошо знать то, что Вы на самом деле выполнение.
Вы кодируете текст дважды. Попробуйте следующее:
import xml.etree.cElementTree as etree
elem = etree.Element('tag')
elem.text = u"Würth Elektronik Midcom"
xml = etree.tostring(elem,encoding='UTF-8')