List.reverse метод

Логическое преобразование

Преобразование к происходит в логическом контексте, таком как , и при применении логических операторов.

Все значения, которые интуитивно «пусты», становятся . Их несколько: , пустая строка, , и .

Остальное, в том числе и любые объекты – .

Полная таблица преобразований:

Значение Преобразуется в…
,
Числа Все , кроме , — .
Строки Все , кроме пустой строки —
Объекты Всегда

Для явного преобразования используется двойное логическое отрицание или вызов .

Обратите внимание: строка становится

В отличие от многих языков программирования (например PHP), в JavaScript является , как и строка из пробелов:

Логическое преобразование интересно тем, как оно сочетается с численным.

Два значения могут быть равны, но одно из них в логическом контексте , другое – .

Например, равенство в следующем примере верно, так как происходит численное преобразование:

… А в логическом контексте левая часть (0) даст , правая («\n0\n») – , так как любая не пустая строка в логическом контексте равна :

С точки зрения преобразования типов в JavaScript это совершенно нормально. При сравнении с помощью «==» – численное преобразование, а в – логическое, только и всего.

Синтаксис

parseInt(string, radix);

Параметры

Значение, которое необходимо проинтерпретировать. Если значение параметра не принадлежит строковому типу, оно преобразуется в него (с помощью абстрактной операции ). Пробелы в начале строки не учитываются.
Целое число в диапазоне между 2 и 36, представляющее собой основание системы счисления числовой строки , описанной выше. В основном пользователи используют десятичную систему счисления и указывают 10. Всегда указывайте этот параметр, чтобы исключить ошибки считывания и гарантировать корректность исполнения и предсказуемость результата. Когда основание системы счисления не указано, разные реализации могут возвращать разные результаты.

Возвращаемое значение

Целое число, полученное парсингом (разбором и интерпретацией) переданной строки. Если первый символ не получилось сконвертировать в число, то возвращается . 

Примеры

В следующем примере демонстрируются обе перегрузки Reverse метода.The following example demonstrates both overloads of the Reverse method. В примере создается List<T> строка из строк и добавляется шесть строк.The example creates a List<T> of strings and adds six strings. Перегрузка метода используется для обращения к списку, а затем перегрузка метода используется для обращения к середине списка, начиная с элемента 1 и охватывающего четыре элемента.The method overload is used to reverse the list, and then the method overload is used to reverse the middle of the list, beginning with element 1 and encompassing four elements.

Reverse()

Изменяет порядок элементов во всем списке List<T> на обратный.Reverses the order of the elements in the entire List<T>.

Комментарии

Этот метод использует Array.Reverse , чтобы изменить порядок элементов на обратный.This method uses Array.Reverse to reverse the order of the elements.

Этот метод является операцией O (n), где n — Count .This method is an O(n) operation, where n is Count.

Reverse(Int32, Int32)

Изменяет порядок элементов в указанном диапазоне.Reverses the order of the elements in the specified range.

Параметры

index

Int32

Отсчитываемый от нуля индекс начала диапазона, порядок элементов которого требуется изменить.The zero-based starting index of the range to reverse.

count

Int32

Число элементов в диапазоне, порядок сортировки в котором требуется изменить.The number of elements in the range to reverse.

Исключения

ArgumentOutOfRangeException

Значение параметра меньше 0. is less than 0.

-или—or-
Значение параметра меньше 0. is less than 0.

ArgumentException

Параметры и не указывают допустимый диапазон элементов в списке List<T>. and do not denote a valid range of elements in the List<T>.

Комментарии

Этот метод использует Array.Reverse , чтобы изменить порядок элементов на обратный.This method uses Array.Reverse to reverse the order of the elements.

Этот метод является операцией O (n), где n — Count .This method is an O(n) operation, where n is Count.

Перевернуть сроку при помощи reversed() и str.join()

Переворот строки с обратной итерацией при помощи встроенной функции reversed() — еще один способ сделать это. Вы получаете обратный итератор, который можно использовать цикличного перемещения элементов строки в обратном порядке:

Python

for elem in reversed(‘TURBO’):
print(elem)

1
2

forelem inreversed(‘TURBO’)

print(elem)

Результат:

Python

O
B
R
U
T

1
2
3
4
5

O
B
R
U
T

Использование reversed() не модифицирует оригинальную строку (что не сработало бы в любом случае, так как строки неизменны в Python). Происходит следующее: вы получаете «вид» существующей строки, который вы можете использовать для обзора всех элементов в обратном порядке.

Это сильная техника, которая использует преимущество протокола итерации Python.

Итак, все что вы видели — это способы итерации над символами строки в обратном порядке. Но как использовать эту технику для создания отраженной копии строки Python при помощи функции reversed()?

Сделаем это вот так:

Python

text = ».join(reversed(‘TURBO’))
print(text) # ‘OBRUT’

1
2

text=».join(reversed(‘TURBO’))

print(text)# ‘OBRUT’

В этом фрагменте кода используется метод .join(), объединяющий все символы, полученные в результате обратной итерации в новой строке. Хитро и удобно!

Конечно, вы можете еще раз извлечь этот код в отдельную функцию для создания надлежащей функции «перевернутой строки» в Python. Вот так:

Python

def reverse_string2(s):
return «».join(reversed(s))

data = reverse_string2(‘TURBO’)
print(data) # ‘OBRUT’

1
2
3
4
5

defreverse_string2(s)

return»».join(reversed(s))

data=reverse_string2(‘TURBO’)

print(data)# ‘OBRUT’

Мне действительно нравится этот подход обратного итератора для переворота строк в Python.

Он четко сообщает о том, что происходит, и даже новичок в языке на интуитивном уровне может понять, что я создаю перевернутую копию оригинальной строки.

И хотя понимание работы итераторов на глубоком уровне — полезно и похвально, это не абсолютная необходимость для использования этой техники.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector