table 的迭代似乎在 python 中不起作用
Iteration over table seems to not be working in python
我有这个代码:
table = [
['a', 'b', 'c', 'd', 'e'],
['f', 'g', 'h', 'i', 'k'],
['l', 'm', 'n', 'o', 'p'],
['q', 'r', 's', 't', 'u'],
['v', 'w', 'x', 'y', 'z']]
m = raw_input()
for row in table:
for column in row:
for letter in m:
if letter == 'j':
letter = 'i'
if column == letter:
print column
遍历字母表,并检查所提供文本中的每个字母,如果它们匹配,则打印出字母表中的当前字母。我的问题是,当将 hello
传递给它时,它会打印出:
e
h
l
l
o
而不是:
h
e
l
l
o
这是什么原因造成的?其他几个文本示例有错误,但不是全部。我的逻辑有问题吗?
它按预期工作,按字母顺序打印字母。就像 table.
里的一样
要打印收到的输出,您需要先迭代用户输入:
for letter in m: # this first
for row in table:
for column in row:
if letter == 'j':
letter = 'i'
if column == letter:
print column
它工作正常。只是检查字母是否在你的数组中,而不是检查数组中的字母是否在你的单词中。你拿第一行,而不是第一列(字母 a),然后检查字母 a 是否 == m 中的任何字母。你需要从另一边开始:
m = raw_input()
for letter in m:
if letter == 'j'
letter = 'i'
for row in table:
for column in row:
if column == letter:
print column
您是否考虑过使用 translate 而不是 table?
如果你想检查一个字符串并替换其中的 chr
会容易得多。
from string import maketrans
in_str = "i"
out_str = "j"
translate_in_out = maketrans(in_str, out_str)
m = raw_input()
print m.translate(translate_in_out, 'xm')
替换 m
中不需要的字符。
m = m.replace('j', 'i')
迭代 over m
并检查每个字符是否是 in
一个 table 行。
for char in m:
for row in table:
if char in row:
print char
我有这个代码:
table = [
['a', 'b', 'c', 'd', 'e'],
['f', 'g', 'h', 'i', 'k'],
['l', 'm', 'n', 'o', 'p'],
['q', 'r', 's', 't', 'u'],
['v', 'w', 'x', 'y', 'z']]
m = raw_input()
for row in table:
for column in row:
for letter in m:
if letter == 'j':
letter = 'i'
if column == letter:
print column
遍历字母表,并检查所提供文本中的每个字母,如果它们匹配,则打印出字母表中的当前字母。我的问题是,当将 hello
传递给它时,它会打印出:
e
h
l
l
o
而不是:
h
e
l
l
o
这是什么原因造成的?其他几个文本示例有错误,但不是全部。我的逻辑有问题吗?
它按预期工作,按字母顺序打印字母。就像 table.
里的一样要打印收到的输出,您需要先迭代用户输入:
for letter in m: # this first
for row in table:
for column in row:
if letter == 'j':
letter = 'i'
if column == letter:
print column
它工作正常。只是检查字母是否在你的数组中,而不是检查数组中的字母是否在你的单词中。你拿第一行,而不是第一列(字母 a),然后检查字母 a 是否 == m 中的任何字母。你需要从另一边开始:
m = raw_input()
for letter in m:
if letter == 'j'
letter = 'i'
for row in table:
for column in row:
if column == letter:
print column
您是否考虑过使用 translate 而不是 table?
如果你想检查一个字符串并替换其中的 chr
会容易得多。
from string import maketrans
in_str = "i"
out_str = "j"
translate_in_out = maketrans(in_str, out_str)
m = raw_input()
print m.translate(translate_in_out, 'xm')
替换 m
中不需要的字符。
m = m.replace('j', 'i')
迭代 over m
并检查每个字符是否是 in
一个 table 行。
for char in m:
for row in table:
if char in row:
print char