Например list[1:5] вернёт список из элементов списка list с первого по пятый, а list[3:] - все элементы list, начиная с третьего.
Есть интересный момент (оговорюсь, что я новичок в питоне) - если мы хотим, как в Си, передать в функцию часть массива по указателю, начиная с определенного элемента, то по-простому мы делаем так:
foo(list[n:])
в результате чего производится операция среза, генерируется новый массив из элементов лист (занимается память и тратятся ресурсы), и уже этот массив по ссылке передается функции.
Если массив - это массив строк, то при с увеличением размера файла это даст увеличение времени работы в геометрической прогрессии.
Как же сразу получить ссылку на часть массива, без создания нового?
Похоже, что никак, т.к. можно передать только ссылку на объект, а его надо, соответственно, сначала создать.
Пришлось слегка подкорректировать алгоритм так, что вызываем
foo(list,n)
и уже внутри функции обрабатываем с учетом индекса.
Вопрос, есть ли лучшее решение?
list[1:5] вернёт список из элементов списка list с первого по четвертый.
ОтветитьУдалитьсо второго по пятый
Удалить