LINUX.ORG.RU

Как найти индекс елемента списка

 


0

1

есть два списка:

CATEGORIES = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","R","S","T","U","V","W","X","Y","Z"]

и списки textPlate:

                textPlate.append(znakMax)
                sumplate += valMax

                print(textPlate)
output:
['J', 'J'] 
['J', 'J', '7'] 
['J', 'J', '7', '8'] 
['J', 'J', '7', '8', '8'] 
['J', 'J', '7', '8', '8', 'R'] 
['J', 'J', '7', '8', '8', 'R', 'K'] 

как найти индексы с категорий для списков textPlate? Заранее спасибо!

Пока что нашла решение

                print(CATEGORIES)
                for t in CATEGORIES:
                    for s in textPlate:
                        if t == s:
                            print(CATEGORIES.index(t))

но стараюсь понять как упростить чтобы иметь сразу результат без петли… что то вроде стандартного list.index(x, [start [, end]])



Последнее исправление: katemisik (всего исправлений: 2)

Я полагаю, что если будет рабочий код, то можно будет думать как его уменьшить или оптимизировать. Сейчас вопрос задан так, что его можно трактовать как угодно, а примеры очень неочевидны.

dicos ★★
()

Как у вас сочетается znakMax и valMax? value это английское слово, а znak транслит с русского, зачем так перемешивать способы названий переменных? Поменяйте znak на symbol, например.

Сразу видно что быстрее будет брать каждый символ из списка текстплейт циклом и искать его в категории с помощью CATEGORIES.index. Таким образом потребуется всего один цикл.

mydibyje ★★★★
()
Последнее исправление: mydibyje (всего исправлений: 1)

textPlate – это список символов?

frob ★★★★★
()

Как найти индекс елемента списка

list.index(item)

почему каждый раз так сложно понять, что ты хочешь?

fakeroot
()
Ответ на: комментарий от fakeroot

Возможно потому, что русский – неродной язык.
Но полгода на примитивные разборки со списками – «это внушаить» (с)

frob ★★★★★
()
                print(CATEGORIES)
                for t in CATEGORIES:
                    for s in textPlate:
                        if t == s:
                            print(CATEGORIES.index(t))

[a.index(i) for i in b if i in a]

[a.index(i) for i in (set(a) & set(b))]

а лучше Counter

fakeroot
()
Ответ на: комментарий от mydibyje

znak

С польского не транслит.

Кстати, знание русского помогает мне понимать код древних поляков на FORTRAN 77.

luke ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.