试图删除python中的“非参数”字符是行不通的。我正在使用remove方法和For循环

2021-12-08 05:54:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个小的编码练习。但我似乎不能去掉一个字符串中的非括号字符

代码如下:

def valid_parentheses(string):
    lis = list(string)
    print(lis)
    stack = []
    for i in lis:
        if i != '(' and i != ')':
            lis.remove(i)
    print(lis)

我在‘嗨(嗨)()中通过 但它打印的是

['h', 'i', '(', 'h', 'i', ')', '(', ')']
['i', '(', 'i', ')', '(', ')']

这很奇怪,因为它删除了“h”字符,但没有删除“i”字符。我主要想知道这里发生了什么。有人能解释一下吗