Python:如何将字符串中的每个项除以一个数字?

Python:如何将字符串中的每个项除以一个数字?,python,Python,谁能解释一下我为什么会犯这个错误吗?谢谢 counts = '2,4,6,8,10' divisor = counts.split(',') quotient = [20/number for number in divisor] 我得到以下错误: 编辑: 谢谢你的建议。我已经修改了我的代码: counts = '2,4,6,8,10' divisor = counts.split(',') quotient = [20/number for number in divisor] 我如何像这

谁能解释一下我为什么会犯这个错误吗?谢谢

counts = '2,4,6,8,10'
divisor = counts.split(',')
quotient = [20/number for number in divisor]
我得到以下错误:

编辑: 谢谢你的建议。我已经修改了我的代码:

counts = '2,4,6,8,10'
divisor = counts.split(',')
quotient = [20/number for number in divisor]
我如何像这样打印除法的结果 20 / 2 = 10
对于每个除数?

,您只需将字符串转换为int:

counts = '2,4,6,8,10'
divisor = counts.split(',')
quotient = [20/int(number) for number in divisor]
print(quotient)

有关此转换的更多信息,请参见:。

将字符串项强制转换为
int

counts = '2,4,6,8,10'
divisor = counts.split(',')
quotient = [20/int(number) for number in divisor]
print(quotient)
简短版本:

print([20/int(x) for x in counts.split(',')])

代码需要如下所示:

counts = '2,4,6,8,10'
divisor = counts.split(',')
quotient = [20/int(number) for number in divisor]
print(quotient)

您试图将int除以字符串,这是不可行的。

除数列表包含str类型的值。在第3行中,您试图将int除以str。

主要问题是数字不能除以字符串。让我们仔细看看:

counts
是一个字符串,即它是
str
类的实例。当您在
计数上应用
split
方法时,您正在创建一个字符串列表,这意味着该列表的每个位置都包含
str
类的一个实例,该列表对应于
['2','4','6','8','10']
,并将其存储在
除数中。在这里之前没有问题

最后,在这一行:

quotient = [20/number for number in divisor]
您试图将
20
,一个
int
类的实例,除以存储在
divisior
中的字符串,这没有意义,因为它们都是
str
的实例。这就是为什么会出现错误:

TypeError: unsupported operand type(s) for /: 'int' and 'str'
简单地说,不允许在
int
str
之间使用运算符
/

正如其他答案所说,您所要做的就是将
除数中的元素转换为整数,然后正确的方法如下:

counts = '2,4,6,8,10'
divisor = counts.split(',')
quotient = [20/int(number) for number in divisor]
print(quotient)
请注意,转换是通过
int(number)
完成的,因此,例如,在第一次迭代中,您将有
int('2')
,它返回
2
(不带引号)。

您可以将字符串编号的列表(或任何其他iter)更改为整数,如下所示:

counts = '2,4,6,8,10'
divisor = counts.split(',')

# key line below
divisor = map(lambda n: int(n), divisor)

quotient = [20/number for number in divisor]
print(quotient)

为什么三个答案都投了反对票,哪一个是正确的?我们与第一个答案只有1分钟的差异,这是相当快的。我很确定这与此无关
counts = '2,4,6,8,10'
divisor = counts.split(',')

# key line below
divisor = map(lambda n: int(n), divisor)

quotient = [20/number for number in divisor]
print(quotient)