使用Python如何将用户输入转换为列表?

时间:2018-09-30 19:31:40

标签: python arrays list split

d_num = []
d_num.append(input("Enter a figure to verify if is a Disarium number: "))

使用上述代码,输入135print(d_num)将返回与“ 1、3、5”相对的“ 135”。

一种快速修复方法是,提示用户在数字之间包含空格或其他字符,然后使用split命令。但是,这会带来问题,因为输出计算基于数字的索引。

例如:

输入:135 输出:true,135 ==蒲公英号为1 ^ 1 + 3 ^ 2 + 5 ^ 3 = 135

尽管有type,有没有更简单的方法将用户输入转换为列表?

2 个答案:

答案 0 :(得分:1)

呼叫list(d_num)将给您列出组成数字的各个字符的列表。从那里,您可以遍历它们,将它们转换为整数并将其提高为适当的幂:

if int(d_num) == sum((int(d[1])**(d[0] + 1) for d in enumerate(list(d_num)))):
    print("%s is a Disarium number" % d_num)

编辑:
正如让·弗朗索瓦·法布尔(Jean-FrançoisFabre)所说,您实际上不需要进行list调用-您可以直接枚举字符串的字符:

if int(d_num) == sum((int(d[1])**(d[0] + 1) for d in enumerate(d_num))):
    print("%s is a Disarium number" % d_num)

答案 1 :(得分:1)

您想知道一种将用户输入的每个数字自动存储为列表项的方法吗?下面是我想到的最简单的方法:

user_input = input("Enter a figure to verify if is a Disarium number: ")
d_num = [digit for digit in user_input]

d_num列表将分别存储每个数字,然后您可以将其转换为整数/浮点数,并执行计算以识别其是否为Disarium数字。

正如@Jérôme在评论中建议的那样,一种更简单的解决方案是将用户输入内容转换为列表,而python处理将单个字符添加为列表项的工作。

d_num = [digit for digit in user_input]可以写为d_num = list(user_input)

希望有帮助