Как проверить, какой символ имеет элемент в списке?

#python #list

#python #Список

Вопрос:

Я новичок в программировании, и мне нужна помощь в решении этой проблемы. Я хочу, чтобы мой код проверял, какой символ элемента находится в списке, и возвращал число, соответствующее позиции этой буквы в алфавите. Например, если первым элементом в моем списке был «A», я бы хотел, чтобы он возвращал «0». Я мог бы сделать это с помощью длинной серии операторов if else, но я действительно не хочу писать подобный спагетти-код. Любая помощь? В случае, если это полезно, вот мой код на данный момент:

 #Ceasar Cipher Decipherer

import time

listchar = 0
alphanum = 0

def Convert(string): 
    list1=[] 
    list1[:0]=string 
    while " " in list1:
      list1.remove(" ")
    return list1

alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
coded_phrase = input("Enter the encoded phrase now.n")
jumps_forward = input("Enter the number of times the decoder must jump forwards in the alphabet.n")

print("Thanks! Decoding phrase...n")
time.sleep(0.5)

Convert(coded_phrase)

while listchar <= len(coded_phrase):
  #this is where I want the alphabet-checky code thing to go.
  

Ответ №1:

если вас интересуют только строчные буквы, вы можете использовать ord :

 def pos_in_alphabet(char):
    return ord(char) - ord("a")

print(pos_in_alphabet("a"))  # 0
print(pos_in_alphabet("b"))  # 1
print(pos_in_alphabet("c"))  # 2

print(pos_in_alphabet("x"))  # 23
print(pos_in_alphabet("y"))  # 24
print(pos_in_alphabet("z"))  # 25
  

Ответ №2:

 alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]
alphabet.index("g")
6
  

Вам нужно использовать .index() метод в списке

Ответ №3:

Проверьте этот код и посмотрите, хотите ли вы этого:

 array = ["a", "b", "y", "z", "A", "B", "Y", "Z"]

for i in array:
    print( ord( i.upper() ) - ord("A") )