1

簡単な質問 (Python 3.x を使用) - 複数行の入力を受け取り、その入力を検索し、すべての整数を見つけて合計し、結果を出力する Python プログラムを作成しています。複数桁の整数を検索して見つける最も効率的な方法について、私は少し困惑しています.1行に12が含まれている場合、[1,2]ではなく12を見つけたいと思います。未完成の私のコードは次のとおりです。

def tally():
    #the first lines here are just to take multiple input
    text = []
    stripped_int = []
    stopkey = "END"
    while True:
        nextline = input("Input line, END to quit>")
        if nextline.strip() == stopkey:
            break
        text.append(nextline)
    #now we get into the processing
    #first, strip all non-digit characters
    for i in text:
        for x in i:
            if x.lower() in ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','!',',','?']:
                pass
            else:
                stripped_int.append(x)
    print(stripped_int)

tally()

これにより、すべての整数のリストが出力されますが、整数をまとめる方法について困惑しています。何か案は?

4

1 に答える 1

5

正規表現の使用:

import re

def tally(string):
    return map(int, re.findall(r'\b\d+\b', string))
于 2013-09-19T16:50:39.967 に答える