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)