Python 从每个数字中减去K

Python 从每个数字中减去K

在本文中,我们将学习一个Python程序,用于从列表中的每个数字中减去K。

假设我们输入了一个包含数字和K值的列表。我们现在将从列表元素的每个数字中减去K,并使用以下方法打印结果列表。

示例

Let inputList = [1034, 356, 2145, 6712, 8671]
Given input k value = 3

现在考虑第一个元素,即1034

从1034的每个数字中减去3

  • 1-3 =-2。所以,向上取整为0

  • 0-3 = -3。所以,向上取整为0

  • 3-3 = 0。它没有值

  • 4-3 = 1。因此值保留不变

因此,对于 1034 的输出是0001,即 1 。类似地,获取其他列表元素的所有值。

因此,输出列表为:[1, 23, 12, 3400, 5340]

使用的方法

  • 使用for循环、str()函数和减法操作符

  • 使用列表推导、str()函数和减法操作符

  • 使用Numpy的减法操作符

方法1:使用for循环、str()函数和减法操作符

max()方法(返回可迭代对象中最大值的项/最大数)。

str()函数(返回对象的字符串格式,即将其转换为字符串)。

步骤

以下是执行所需任务的算法/步骤:

  • 创建一个变量来存储输入列表并打印它。

  • 创建另一个变量来存储要从列表元素的每个数字中减去的输入k值。

  • 创建一个新的空列表,用于存储从每个数字减去k后的结果列表。

  • 使用for循环遍历输入列表的元素。

  • 使用str()函数将数字转换为字符串。

  • 遍历字符串的每个数字。从每个数字减去k以找到(0,结果)的最大值。

  • 使用join()函数连接减法后的结果。

  • 使用int()函数将结果转换为整数以去除前导零。

  • 使用append()函数将结果添加到resultList中。

  • 打印从每个数字减去K后的结果列表。

示例

以下程序使用for循环、str()函数和减法操作符从输入列表元素的每个数字中减去给定的K后返回一个列表:

# input list
inputList = [1034, 356, 2145, 6712, 8671]

# printing the input list
print("Input list:\n", inputList)

# input k value (to be subtracted)
k = 3

# resultant list for storing elements after subtraction of k from each digit
resultList = []

# traversing through the elements of input list
for item in inputList:

   # Converting the number to a string
   strItem = str(item)

   # Traversing through the digits of the string

   # Subtracting k from each digit and finding max of 0 and this result.

   # Joining all the results using the join() function
   reslt = ''.join([str(max(0, int(i) - k)) for i in strItem])

   # Converting the result to an integer and adding it to the result list
   resultList.append(int(reslt))

# printing resultant list after subtracting K from each digit
print("Resultant list after subtracting K from each digit:\n", resultList)

输出

执行上述程序后,将生成以下输出:

Input list:
[1034, 356, 2145, 6712, 8671]
Resultant list after subtracting K from each digit:
[1, 23, 12, 3400, 5340]

方法2:使用列表推导、str()和-运算符

列表推导

当你希望基于现有列表的值构建一个新的列表时,列表推导提供了更短、更简洁的语法。

示例

下面的程序使用列表推导、str()和-运算符从输入列表元素的数字中减去给定的k,并返回一个列表:

# input list
inputList = [1034, 356, 2145, 6712, 8671]

# printing the input list
print("Input list:\n", inputList)

# input k value (to be subtracted)
k = 3

# Finding result using the list comprehension(concise syntax)
resultList = [int(''.join([str(max(0, int(i) - k)) for i in str(i)])) for i in inputList]

# printing resultant list after subtracting K from each digit
print("Resultant list after subtracting K from each digit:\n", resultList)

输出

在执行上述程序时,将会生成以下输出 –

Input list:
[1034, 356, 2145, 6712, 8671]
Resultant list after subtracting K from each digit:
[1, 23, 12, 3400, 5340]

方法3:使用Numpy的“-”运算符

以下程序使用Numpy的“-”运算符从输入列表元素的数字中减去给定的k,并返回一个列表。

import numpy

# input list
inputList = [1034, 356, 2145, 6712, 8671]

# printing the input list
print("Input list:\n", inputList)

# input k value (to be subtracted)
k = 3

# resultant list for storing elements after subtraction of k from each digit
resultList = []

# traversing through the elements of the input list
for item in inputList:

   # Creating a new list to store the list of digits
   listOfDigits = []

   # Traversing through the digits of the list
   for digit in str(item):

      # Converting the digit to an integer and appending it to the list
      listOfDigits.append(int(digit))

   # Converting the above list of digits to Numpy Array
   numpyArray = numpy.array(listOfDigits)

   # Subracting K from each digit
   numpyArray = numpyArray - k

   # Taking an empty string to store the result
   reslt = ""

   # Traversing through the digits of the Numpy Array
   for digit in numpyArray:
      reslt += str(max(0, digit))
   # Converting the result to an integer and adding it to the result list
   resultList.append(int(reslt))

# printing resultant list after subtracting K from each digit
print("Resultant list after subtracting K from each digit:\n", resultList)

输出

执行程序后,上述程序将生成以下输出:

Input list:
[1034, 356, 2145, 6712, 8671]
Resultant list after subtracting K from each digit:
[1, 23, 12, 3400, 5340]

结论

在这篇文章中,我们学习了如何使用3种不同的方法从给定的数字列表的每个数字中减去k。列表推导式提供了一种简洁的语法,使我们能够用更少的代码行完成工作,正如我们所学到的。我们还学习了如何获得数字的字符串形式,将它们转换为一个Numpy数组,并使用“-”运算符从Numpy数组的每个元素中减去k。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程