Python中s[-1][0](即stack[-1][0])的具体含义是什么?
s[-1][0]语法含义解析 我们可以把这个表达式拆成两部分理解:
- 第一部分
s[-1]:Python中所有序列类型(列表、元组、字符串等)都支持负索引,-1代表取序列的最后一个元素,所以这里是取出列表s的最后一个元素。 - 第二部分
[0]:代表取上一步得到的元素的第一个子元素,这说明s存储的每个元素本身也是支持索引的序列类型(比如列表、元组),且每个子序列至少包含1个元素。
结合代码上下文解释
你给出的代码中,while 判断的完整逻辑是:
- 先判断
s非空,避免空列表取[-1]触发索引越界错误 - 再判断
s最后一个子元素的第一个值,是否小于等于 int 类型变量el,两个条件都满足才会进入循环体执行。
举个实际例子方便理解:
假设当前 s = [[2, 'x'], [4, 'y'], [7, 'z']],那么:
s[-1]得到结果[7, 'z']s[-1][0]得到结果7,如果此时el的值是9,7 <=9条件成立,就会进入循环。
内容的提问来源于stack exchange,提问作者Zero
相关产品推荐
相关产品推荐

