簡體   English   中英

計算字符串中括號之間的數字

[英]Count numbers between parenthesis in string

我有一個看起來像這樣的字符串

"(1 4 3 2 12 7 10 5)(9 11)(4 3 2 3 2 1)"

有沒有辦法我可以計算兩個方括號之間的數字量並得到像

[8,2,6]

其中8 =計算數量的第一個括號的長度?

這是使用正則表達式獲取字符串列表的一種方法,該字符串列表的括號之間是數字,而列表理解是計算其中的數字:

s = '(1 4 3 2 12 7 10 5)(9 11)(4 3 2 3 2 1)'
import re
l = re.findall(r'\(((?:\d+\s*)+)\)', s)
# ['1 4 3 2 12 7 10 5', '9 11', '4 3 2 3 2 1']
[len(i.split()) for i in l]
# [8, 2, 6]

這是一個幼稚的解決方案

def getlist(input_string):
    output = []
    count = 0
    for i in range(1, len(input_string)-1):
        char = input_string[i]
        if char == "(" :
            output.append(count)
            count = 0
        if char.isdigit() and not input_string[i+1].isdigit():
            count += 1
    output.append(count)
    return output

您可以針對每次出現的開括號和閉括號進行拆分,即')(',然后針對每個空格進行拆分

def get_lengths(s):
    list1=s.split(")(")
    return [len(x.split()) for x in list1]

s=input()
print(get_lengths(s))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM