如何输入字符串,输出int,使用数组python

how to input string, output int, use array python

有人可以帮我完成这个源代码 am输入String,改成array list,输出那个int在那个table

x = input()

y = list(x)

table = {" ":270,

         "a":0,
         "b":90,
         "c":180,
         "d":270,
         "e":0,
         "f":90,
         "g":180,
         "h":270,
         "i":0,
         "j":90,
         "k":180,
         "l":270,
         "m":0,
         "n":90,
         "o":180,
         "p":270,
         "q":0,
         "r":90,
         "s":180,
         "t":270,
         "u":0,
         "v":90,
         "w":180,
         "x":270,
         "y":0,
         "z":90,}



for i in range(len(y)):
    print(y[i])
    print("{["+y[i]+"]}".format(table))

处出错
print("{["+y[i]+"]}".format(table))

示例:对于输入 abc,预期输出应为:

a
0
b
90
c
180

如果我对你的理解是正确的,你想将 y 中的每个元素都转换为 int。您可以为此使用列表理解:

y = [int(x) for x in y]

我不确定你想做什么。但也许是这样的?

for i in y:
    print(i, table[i])

. 比字符串连接 +.

具有更高的优先级

这个表达式"{["+y[i]+"]}".format(table)实际上被计算为:

"{["+y[i]+("]}".format(table))

这不是你想要的。

在 应用格式方法之前必须使用括号强制连接:

print(("{["+y[i]+"]}").format(table))

顺便说一句,我假设这是一个简化的例子,因为在这里使用 format 真的有点过分了,因为这会产生相同的输出:

for c in y:
    print(c)
    print(table[c])

此代码失败且远非优雅:

y = list(x)
for i in range(len(y)):
    print(y[i])
    print("{["+y[i]+"]}".format(table))

在 Python 中,您通常不需要使用递增索引对字符串进行 C 样式迭代。直接遍历字符串即可:

for letter in x:
    print("my letter is", letter)
    print("my integer is", table[letter])

并将每个字母转换为匹配的整数,生成一个列表,然后打印它:

my_int_list = [table[letter] for letter in x]
print(my_int_list)

最后一点,你应该用描述性的名称命名你的变量,xy 很容易混淆。

我认为您的问题的答案将是以下代码:

x = str(input('Input string\n'))

table = {" ": 270,
         "a": 0,
         "b": 90,
         "c": 180,
         "d": 270,
         "e": 0,
         "f": 90,
         "g": 180,
         "h": 270,
         "i": 0,
         "j": 90,
         "k": 180,
         "l": 270,
         "m": 0,
         "n": 90,
         "o": 180,
         "p": 270,
         "q": 0,
         "r": 90,
         "s": 180,
         "t": 270,
         "u": 0,
         "v": 90,
         "w": 180,
         "x": 270,
         "y": 0,
         "z": 90}


for element in x:
    if element in table:
        print '{}\n{}'.format(element, int(table[element]))