Найдите индекс значения в массиве

Вот версия Python, которая имеет дело с различными случаями, пунктуацией и пробелом.

import string

def is_palindrome(palindrome):
    letters = palindrome.translate(string.maketrans("",""),
                  string.whitespace + string.punctuation).lower()
    return letters == letters[::-1]

Редактирование: Бесстыдно украл от Blair Conrad более опрятный ответ для удаления немного неуклюжей обработки списков из моей предыдущей версии.

107
задан nawfal 15 October 2013 в 14:43
поделиться

3 ответа

int keyIndex = Array.FindIndex(words, w => w.IsKey);

Это фактически дает вам целочисленный индекс, а не объект, независимо от того, какой пользовательский класс вы создали

174
ответ дан 24 November 2019 в 03:38
поделиться

Попробуйте это ...

var key = words.Where(x => x.IsKey == true);
3
ответ дан 24 November 2019 в 03:38
поделиться

Если вы хотите найти слово, которое вы можете использовать

var word = words.Where(item => item.IsKey).First();

Это дает вам первый элемент, для которого IsKey истинно (если нет, вы можете использовать .FirstOrDefault ()

Чтобы получить и элемент, и индекс, который вы можете использовать

KeyValuePair<WordType, int> word = words.Select((item, index) => new KeyValuePair<WordType, int>(item, index)).Where(item => item.Key.IsKey).First();
6
ответ дан 24 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: