python - 在 Python 中按字符迭代字符串列表
问题描述
Phone Number = "3662277815781519518916891"
Words = ["foo", "bar", "baz", "foobar", "emo", "cap", "car", "cat"]
foo -> 366
所以在这个问题中,我得到了一个字符串形式的电话号码和一个单词列表。每个字母对应一个数字,就像它出现在电话的拨号屏幕上一样。(例如:2 -> abc、3 -> def 等...)基本上我需要找出我们给定的电话号码中是否存在每个单词。所以我的逻辑是使用字典,将电话拨号屏幕上的字母及其配对数字分别作为我的键值对。然后我想将我们单词列表中的每个单词转换为它的数字代表。例如,foo -> 366。最后我想做一个简单的检查,看看每个单词是否在我们的电话号码字符串中;如果是返回true,如果不是返回false。我认为我的逻辑相当简单,但我的实现似乎完全错误。
所以在我的代码中,我试图遍历列表中每个单词的每个字母,然后将该字母转换为字典中的值对。这样做的最佳方法是什么?
def phone(num, words):
conversions = {"abc": 2, "def": 3, "ghi": 4, "jkl": 5, "mno": 6, "pqrs": 7, "tuv": 8, "wxyz": 9}
for word in words:
for letter in word:
conversions.get(letter)
#letter += 1
print (words)
编辑: num 是给我们的电话号码字符串, words 是他们给我们的单词列表(也表示为字符串)
解决方案
把事情简单化。字典应采用单个字母并将其转换为数字。
{'a':'2', 'b':'2', 'c':'2', 'd':'3', ...}