List 将列表中的项转换为int

List 将列表中的项转换为int,list,python-3.x,int,List,Python 3.x,Int,从下面的代码中,我得到:TypeError:不能将序列与'list'类型的非int相乘 x = list(input("Input a list of integers, seperated by a comma:")) def histogram(x): for y in x: print("*"*x) histogram(x) 我假设你想要的东西看起来有点像: >>> histogram('1,5,1,3') * ***** * *** 那么你必

从下面的代码中,我得到:TypeError:不能将序列与'list'类型的非int相乘

x = list(input("Input a list of integers, seperated by a comma:"))
def histogram(x):
    for y in x:
        print("*"*x)
histogram(x)

我假设你想要的东西看起来有点像:

>>> histogram('1,5,1,3')
*
*****
*
***
那么你必须改变一些事情

首先,
x=list(input())
将为您提供输入中的字母/字符列表。所以
list('1,2,3')
将产生
['1',',','2',',','3']
,我确信您不想处理逗号

相反,您应该使用
string.split(',')
在每次出现逗号时进行拆分。根据您希望如何执行此操作,您可以在函数内部执行此操作(如我在下面所做的),也可以直接执行到输出,以便函数需要一个数字字符串列表

我之所以说“数字字符串列表”,是因为
input
返回一个字符串,所以即使您输入数字,它也会给您字符串。您必须确保显式转换为
int
才能将
'*'
乘以它

最后,你的问题的实际答案是什么?您正在调用
print(“*”*x)
。我想你的意思是
print(“*”*y)
或者更准确地说,
print(“*”*int(y))

下面是我假设可以工作的代码,但同样,我不知道您的预期输出实际上是什么

>>> x = input("Please enter comma separated list of numbers: ")
Please enter comma separated list of numbers: 
>>> x = input("Please enter comma separated list of numbers: ")
Please enter comma separated list of numbers: 1,2,3,4,5,6,1,2
>>> def histogram(x):
    for y in x.split(','):
        print("*"*int(y))


>>> histogram(x)
*
**
***
****
*****
******
*
**