文字の値と位置を返そうとしています。これをプレーン・フォー・ループとして実行するとうまくいきます。それは、私がそれがうねったように見え始める機能に変えたときです。リスト返り値なし、値を省略します
ここでは、その出力と一緒です:
dict = {'a': 1, 'b': 2 ... 'z': 26}
list1 = []
list2 = []
def plot(word):
counter = 0
for i in word:
y = dict.get(i)
list1.append(y) #keeps printing None for the first letters
counter += 1
x = counter
list2.append(x)
print list1
print list2
r = zip(list1, list2)
print r
t = raw_input('Enter word: ')
Enter word: Hello
plot(t)
Output:
[None, None, 5, 12, 12, 15]
[1, 2, 3, 4, 5]
[(None, 1), (None, 2), (5, 3), (12, 4), (12, 5)]
'dict.get(i)'が 'None'の場合、' i'は 'dict'のキーではありません。 '' h''はそれに含まれていますが '' H'''ですか?また、*自分の辞書 'dict' *に名前をつけないでください。 – jonrsharpe
私が探している出力は[(8,1)、(5,2)、(12,3)、(12,4)、(15,5)]です。 – Rajahfox
また、list1には6つの要素「こんにちは」には5文字しかありません。だから、あなたは実際に一つの手紙を欠いているだけです。すべての文字を小文字にするには、単語のlower()メソッドを使用してみてください。次に、単語の前にスペースがないことを確認します( 'Hello'の前にスペースがあるように見えます)。 –