在Python中对字符串中的数字求和

在 Python 中对字符串中的数字求和:

  1. 使用生成器表达式迭代字符串。
  2. 在每次迭代中,如果每个字符是数字,则将其转换为整数。
  3. 使用 sum() 函数获取数字的总和。
my_str = '1ab2c3'

# ✅ 对可能包含非数字的字符串中的数字求和
total = sum(int(char) for char in my_str if char.isdigit())

print(total)  # ?️ 6

# -----------------------------------------------------------

# ✅ 对仅包含数字的字符串中的数字求和

my_str_2 = '246'

total_2 = sum(int(d) for d in my_str_2)

print(total_2)  # ?️ 12

我们使用生成器表达式来迭代字符串。

生成器表达式用于对每个元素执行一些操作,或者选择满足条件的元素子集。

在每次迭代中,我们检查字符是否为数字。

如果字符串中的所有字符都是数字并且至少有 1 个字符,则 str.isdigit 方法返回 True,否则返回 False

我们将所有数字转换为整数并使用 sum() 函数来获得总数

my_str = '1ab2c3'

# ✅ 对可能包含非数字的字符串中的数字求和
total = sum(int(char) for char in my_str if char.isdigit())

print(total)  # ?️ 6

最后一步是使用 sum() 函数对生成器对象中的数字求和。

sum 函数接受一个可迭代对象,从左到右对其项求和并返回总数。

sum 函数采用以下 2 个参数:

  • iterable 要对其项目求和的可迭代对象
  • start 将起始值和可迭代的项目相加。 sum 默认为 0(可选)

如果保证我们的字符串只包含数字,则不必使用 str.isdigit() 方法。