#python-3.x #dictionary
#python-3.x #словарь
Вопрос:
Для этого упражнения мне нужно подсчитать «количество ребер» в слове «AARDGASRESERVES» (голландский), используя цикл for и словарь. У меня уже есть следующий код, но это не дает мне требуемого результата (который должен быть 31). Я считаю, что средняя часть еще не совсем правильная.
# dictionary of number of edges per letter
edges = {"A": 2, "R": 2, "D": 0,"G": 2,"S": 2,"R": 2,"E": 3, "V": 2}
word = "AARDGASRESERVES"
# loop over the letters in the word and count the number of edges
total_edges = 0
for key in edges:
if edges[key] == word:
total_edges = [value]
# print the total
print("Total number of edges:", total_edges)
Я if edges[key] in word:
тоже пытался, но это приводит к ошибке. Я все еще новичок в Python, так что, возможно, я написал что-то, что даже невозможно.
Ответ №1:
Простой способ сделать то, что вы хотите, это:
edges = {"A": 2, "R": 2, "D": 0,"G": 2,"S": 2,"R": 2,"E": 3, "V": 2}
word = "AARDGASRESERVES"
total_edges = sum([edges[c] for c in word])
# print the total
print("Total number of edges:", total_edges) # Output: 31
Тем не менее, я советую вам внимательно изучить свой код, чтобы понять, почему он не работает. Например, здесь:
...
if edges[key] == word:
...
вы сравниваете, равно ли число (значение вашего dict) целому слову, что является иррациональным if-statement
.
Комментарии:
1. Спасибо за ваш ответ и комментарий. Теперь я вижу, что этот оператор if не является хорошим. Как я уже сказал, я новичок в Python, поэтому такие комментарии действительно ценятся!
2. Пожалуйста! Поскольку вы новичок, попробуйте, когда у вас возникнет подобная проблема, использовать
Ответ №2:
Из того, что я понимаю о назначении этого кода. Это должно быть сделано следующим образом
# dictionary of number of edges per letter
edges = {"A": 2, "R": 2, "D": 0,"G": 2,"S": 2,"R": 2,"E": 3, "V": 2}
word = "AARDGASRESERVES"
# loop over the letters in the word and count the number of edges
total_edges = 0
for key in word:
total_edges = edges[key]
# print the total
print("Total number of edges:", total_edges)
Что вы хотите сделать, это получить букву из слова, получить конкретный элемент, связанный с этим ключом, и добавить его.
Комментарии:
1. Спасибо! Это действительно то, что я искал. Спасибо и за объяснение, оно действительно очень помогает мне в изучении Python