#python #string #list
#python #строка #Список
Вопрос:
Я уже выполнил задачу, но в ее самой простой форме ищу помощь в ее сокращении, чтобы она могла применяться к любому слову, а не только к одному из восьми букв, вот что у меня есть до сих пор (немного длинновато для того, что он делает):
alpha = map(chr, range(97, 123))
word = "computer"
word_list = list(word)
one = word[0]
two = word[1]
three = word[2]
four = word[3]
five = word[4]
six = word[5]
seven = word[6]
eight = word[7]
one_index = str(alpha.index(one))
two_index = str(alpha.index(two))
three_index = str(alpha.index(three))
four_index = str(alpha.index(four))
five_index = str(alpha.index(five))
six_index = str(alpha.index(six))
seven_index = str(alpha.index(seven))
eight_index = str(alpha.index(eight))
print (one "=" one_index)
print (two "=" two_index)
print (three "=" three_index)
print (four "=" four_index)
print (five "=" five_index)
print (six "=" six_index)
print (seven "=" seven_index)
print (eight "=" eight_index)
Комментарии:
1. Это поиск алфавитного индекса каждого символа
a -> 0, b -> 1, c -> 2,...z - >25
.2. используйте
for letter in word:
(илиfor letter in word_list
)
Ответ №1:
То, что вы, вероятно, ищете, — это цикл for.
Используя цикл for, ваш код может выглядеть следующим образом:
word = "computer"
for letter in word:
index = ord(letter)-97
if (index<0) or (index>25):
print ("'{}' is not in the lowercase alphabet.".format(letter))
else:
print ("{}={}".format(letter, str(index 1))) # 1 to make a=1
Если вы используете
for letter in word:
#code
следующий код будет выполнен для каждой буквы в слове (или элемента в word, если word, например, является списком).
Хорошее начало для изучения циклов здесь: https://en.wikibooks.org/wiki/Python_Programming/Loops
В Интернете вы можете найти множество ресурсов, посвященных этой теме.
Ответ №2:
Используйте для цикла для цикла,
alpha = map(chr, range(97, 123))
word = "computer"
for l in word:
print '{} = {}'.format(l,alpha.index(l.lower()))
Результат
c = 2
o = 14
m = 12
p = 15
u = 20
t = 19
e = 4
r = 17
Ответ №3:
Начните с a dict
, который сопоставляет каждую букву с ее номером.
import string
d = dict((c, ord(c)-ord('a')) for c in string.lowercase)
Затем сопоставьте каждую букву вашей строки с соответствующим индексом.
result = [(c, d[c]) for c in word]
Ответ №4:
спасибо за помощь, удалось решить это самостоятельно другим способом, используя функцию и цикл while, не такой короткий, но будет работать для всех слов в нижнем регистре:
alpha = map(chr, range (97,123))
word = "computer"
count = 0
y = 0
def indexfinder (number):
o = word[number]
i = str(alpha.index(o))
print (o "=" i)
while count < len(word):
count = count 1
indexfinder (y)
y = y 1