python方括号索引_python - 从列表中获取结束括号索引的python代码 - SO中文参考 - www.soinside.com...

你只需要计算左支撑从起始线开始,当遇到左支撑时,增加​​它,当遇到右支撑时,减少它。当它再次达到零时,您会找到正确的索引。

您的示例代码:

def get_closing_brace_index(str_list, left_idx):

# input check, you can ignore it if you assure valid input

if left_idx < 0 or left_idx >= len(str_list) or '(' not in str_list[left_idx]:

return -1, ''

# use a left brace counter

left_count = 0

# just ignore everything before open_brace_index

for i, s in enumerate(str_list[left_idx:]):

for c in s:

if c == '(':

left_count += 1

elif c == ')':

left_count -= 1

# find matched closing brace

if left_count == 0:

return i + left_idx, str_list[i + left_idx]

# invalid brace match

elif left_count < 0:

return -1, ''

return -1, ''

def test():

mylist = [

'a',

'b(',

'(',

'cd',

'd(e)',

'hi)',

'last brace) '

]

print(get_closing_brace_index(mylist, 1))

# output (6, 'last brace) ')

print(get_closing_brace_index(mylist, 2))

# output (5, 'hi)')

print(get_closing_brace_index(mylist, 4))

# output (4, 'd(e)')

print(get_closing_brace_index(mylist, 0))

# output (-1, '')

print(get_closing_brace_index(mylist, 6))

# output (-1, '')

希望对你有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值