Python初学者疑问:为什么这段代码执行后返回结果为0?
代码执行逻辑分步拆解
首先修正原代码的笔误,myString定义漏了右中括号,完整合法的定义为:
myString = [["1","a"], 0, [""]]
你给出的取值表达式myString[int(myString[0][0])]会按Python从内到外的运算规则执行,具体步骤如下:
- 第一步:执行最内层的
myString[0][0]
Python列表的索引从0开始计数:- 先取
myString[0],拿到整个列表的第一个元素,值为子列表["1", "a"] - 再取该子列表的第一个元素
["1", "a"][0],得到字符串类型的"1"
- 先取
- 第二步:执行
int(myString[0][0])
把字符串"1"转换为整数类型,得到结果1 - 第三步:执行
myString[1]
取原列表索引为1的元素,myString三个索引对应的取值分别为:- 索引0:
["1", "a"] - 索引1:
0 - 索引2:
[""]
因此最终输出结果就是0
- 索引0:
内容的提问来源于stack exchange,提问作者anonuser
相关产品推荐
相关产品推荐

