python中列表中的数字相乘

2024-09-27 00:15:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要一个循环来乘以列表的一部分。我将每个第n个元素(除了第0个)乘以M。这个列表称为numbers,乘法器是M,循环应该从第n个数字开始乘法。 这就是我所拥有的:

for i in range(0, len(numbers)):
  numbers[i]= int(numbers[i])

for M in range (N, len(numbers)):
  if numbers[N] > 0:
    numbers.append[N]
  if numbers[N] < 0:
    total = numbers
    print (total)

它总是返回错误的输出,我已经尽我所能来修复它,但仍然不起作用。在


Tags: in元素列表forlenifrange数字
3条回答

通常用星号(*)乘以一个数字。因此,我们可以将第i-个数乘以:

numbers[i] *= M

要将除第一个元素之外的第N-个元素相乘,我们可以构造一个范围:

^{pr2}$

range的最后一个自变量是step,这意味着我们因此每次递增{},直到达到len(numbers)

您的代码中有不少问题和奇怪之处:

  • 使用M作为循环变量,从而覆盖存储在M中的乘数;最好像在第一个循环中那样使用i
  • 您的是追加到列表中,而不是用numbers[i] = numbers[i] * M或只是numbers[i] *= M覆盖数字
  • 我看不出> 0< 0检查与您的问题有什么关系,但是您可能应该检查numbers[i],而不是{},字母总是一样的
  • 另外,我不明白为什么要将整个numbers列表分配给numbers[i]并打印出来。。。在

您还可以使用列表理解并将其分配回原始列表的一部分:

>>> N, M = 3, 10
>>> numbers = list(range(10))
>>> numbers[N::N] = [x*M for x in numbers[N::N]]
>>> numbers
[0, 1, 2, 30, 4, 5, 60, 7, 8, 90]
numbers = [int(n) for n in numbers]

这是第一个函数。它叫list comprehension我想第二个是你把M和{}混在一起了。不管怎样,N是什么?在

相关问题 更多 >

    热门问题