【问题标题】:How to split string into list nodes?如何将字符串拆分为列表节点?
【发布时间】:2026-02-08 22:25:01
【问题描述】:
def add(num1,num2):
    str1 = str(num1) 
    str2 = str(num2) 
    size1 = len(str1)
    size2 = len(str2)
    carry = 0
    swap = 0
    total = []

    if (size1>size2):
        temp = str1
        str1 = str2
        str2 = temp
        temp = size1
        size1 = size2
        size2 = temp
        swap = 1

    str1 = str1[::-1]
    str2 = str2[::-1]
    
    for i in range(size1):
        t=int(str1[i])+int(str2[i])+carry
        if (t>9):
            total.append(t%10)
            carry=1
        else:
            total.append(t)
            carry=0

    for i in range(size1,size2):
        t=int(str2[i])+carry
        if (t>9):
            total.append(t%10)
            carry=1
        else:
            total.append(t)
            carry=0

    if (carry):
        total.insert(size2,1)

    str1 = str1[::-1]
    str2 = str2[::-1]
    total = total[::-1]

    if (swap==1):
        temp = str1
        str1 = str2
        str2 = temp

strTotal = "".join(map(str,total))
return strTotal

所以,这是我的代码。我使用小学方法通过一个一个地添加每个数字来添加两个数字。我将输入用作字符串,它可以工作,但现在我需要将输入拆分为列表节点,然后做同样的事情。不知道该怎么做。我试过了

digitsPerNode=4

for i in range(len(str1)):
    list1=str1[:digitsPerNode]
    i+=digitsPerNode

但它不起作用。有人能帮助我吗? (我用的是python 3.4版本)

【问题讨论】:

  • 您想按长度分割字符串吗?就像你有“aaabbbccc”,你想要["aaa","bbb","ccc"]
  • "将输入拆分为列表节点" - 给出一个示例输入以及列表节点的外观
  • @geckos 是的,将数字拆分为节点,并逐个添加每个节点
  • 如果你想做@geckos所说的:nodes = zip(*(iter(str1),) * digitsPerNode)
  • 你可以通过这个def split_n(s, n): return [s[i:i+n] for i in range(0, len(s), n)]按len分割

标签: python python-3.x nodes


【解决方案1】:

如果输入为 123235,则 list1=["3235","12"]

将字符串变成最大 4 个的反向块:

def chunkate(str_num, n=4):
    s = "".join(reversed(str_num))
    a = [s[i:i+n] for i in range(0, len(s), n)]
    return ["".join(list(reversed(k))) for k in a]

print(chunkate("123235"))
# prints: ['3235', '12']

【讨论】:

    最近更新 更多