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 |
forelem inreversed(‘TURBO’) print(elem) |
Результат:
Python
O
B
R
U
T
1 |
O B R U T |
Использование reversed() не модифицирует оригинальную строку (что не сработало бы в любом случае, так как строки неизменны в Python). Происходит следующее: вы получаете «вид» существующей строки, который вы можете использовать для обзора всех элементов в обратном порядке.
Это сильная техника, которая использует преимущество протокола итерации Python.
Итак, все что вы видели — это способы итерации над символами строки в обратном порядке. Но как использовать эту технику для создания отраженной копии строки Python при помощи функции reversed()?
Сделаем это вот так:
Python
text = ».join(reversed(‘TURBO’))
print(text) # ‘OBRUT’
1 |
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 |
defreverse_string2(s) return»».join(reversed(s)) data=reverse_string2(‘TURBO’) print(data)# ‘OBRUT’ |
Мне действительно нравится этот подход обратного итератора для переворота строк в Python.
Он четко сообщает о том, что происходит, и даже новичок в языке на интуитивном уровне может понять, что я создаю перевернутую копию оригинальной строки.
И хотя понимание работы итераторов на глубоком уровне — полезно и похвально, это не абсолютная необходимость для использования этой техники.