首页 > 解决方案 > 在 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 是他们给我们的单词列表(也表示为字符串)

标签: pythonlistdictionary

解决方案


把事情简单化。字典应采用单个字母并将其转换为数字。

{'a':'2', 'b':'2', 'c':'2', 'd':'3', ...}


推荐阅读