首页 > 解决方案 > 如何使用索引替换 for 循环中的字符串

问题描述

def functionsdiv(S):
    count = 0
    for i in range(len(S)):
        for k in range(9):
            S.replace(S[i], str(k))
            print(S)
            numbers = int(S)
            if numbers %3 == 0:
                count+=1
        return count

我这样做了,但是在任何迭代中都不会替换字符串。

一个示例输入是"23".

我尝试用每个可能的数字替换数字,看看是否有多少数字可以被 3 ==0

标签: python

解决方案


替换操作不是就地执行(意味着它返回编辑后的字符串,但不改变原始字符串)。使用另一个变量。此外,返回循环之外。

def functionsdiv(S):
    count = 0
    for i in range(len(S)):
        for k in range(9):
            S_temp = S.replace(S[i], str(k))
            print(S_temp)
            numbers = int(S_temp)
            if (numbers %3) == 0:
                count+=1
    
    return count

输出:

functionsdiv('23')
# 03
# 13
# 23
# 33
# 43
# 53
# 63
# 73
# 83
# 20
# 21
# 22
# 23
# 24
# 25
# 26
# 27
# 28
# 6

推荐阅读