我有两个这样的列表:
monkey = ['2\n', '4\n', '10\n']
banana = ['18\n', '16\n', '120\n']
我想用这两个列表做的是制作第三个列表,我们称之为 bananasplit。
我必须去掉 '\n'
,只留下值,然后制作一个公式,分为:
bananasplit[0] = banana[0]/monkey[0]
bananasplit[1] = banana[1]/monkey[1]
等
我尝试了 while 循环,但无法正确使用。这是我所做的:
bananasplit = 3*[None]
i = 0
while i <= 2:
[int(i) for i in monkey]
[int(i) for i in banana]
bananasplit[i] = banana[i]/monkey[i]
i += 1
你会如何解决这个小问题?
最佳答案
以下将执行此操作:
>>> bananasplit = [int(b) / int(m) for b,m in zip(banana, monkey)]
>>> print(bananasplit)
[9, 4, 12]
就您的原始代码而言,主要问题是以下内容实际上是空操作:
[int(i) for i in monkey]
[int(i) for i in banana]
要将它们变成有用的东西,您需要将结果分配到某处,例如:
monkey = [int(i) for i in monkey]
banana = [int(i) for i in banana]
最后,值得注意的是,根据 Python 版本,使用 /
将一个整数除以另一个整数会截断结果或返回浮点结果。参见 In Python 2, what is the difference between '/' and '//' when used for division?
关于python - 将一个列表除以另一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14434605/