вы можете установить docx not python-docx
, вы можете увидеть это для установки python-docx
http://python-docx.readthedocs.io/ ан / последний / пользователь / install.html # установить
Из Типы коллекций в документации Swift:
Вы не можете использовать синтаксис индекса, чтобы добавить новый элемент в конец массива.
blockquote>Существуют различные возможные решения:
Создайте массив с требуемым размером, поскольку @Fantattitude сказал:
var array = [UInt8](count: a.count, repeatedValue: 0) for var i = 0; i < a.count; i++ { array[i] = UInt8(a[i]^b[i]) }
Или начните с пустого массива и добавьте элементы , поскольку только что ответил @Christian:
var array = [UInt8]() for var i = 0; i < a.count; i++ { array.append(UInt8(a[i]^b[i])) }
. «Быстрый» способ в вашем случае, однако, был бы функциональным подходом с
zip()
иmap()
:// Swift 1.2 (Xcode 6.4): let array = map(zip(a, b), { $0 ^ $1 }) // Swift 2 (Xcode 7): let array = zip(a, b).map { $0 ^ $1 }
zip(a, b)
возвращает последовательность всех пар элементов массива (и останавливается, если более короткий массив из них исчерпан).map()
затем вычисляет XOR каждой пары и возвращает результаты в виде массива.
Вы можете инициализировать массив, используя счет вашего второго массива, чтобы не допустить ошибки индекса вне диапазона.
var array = [UInt8](count: a.count, repeatedValue: 0x00)
или вы можете использовать метод добавления массива в своем цикле.
for var i:Int = 0; i < a.count; i++
{
array.append( UInt8(a[i]^b[i]) )
}
Вы можете использовать init(count: Int, repeatedValue: Element)
из Array
следующим образом:
var array = [UInt8](count: 5, repeatedValue: 0x01)
Чтобы узнать больше о инициализаторах Array, посмотрите здесь: http://swiftdoc.org/swift- 2 / тип / Array /