这个星期一我要进行第一次Python考试,自然很紧张! 我目前正在参加一些旧考试,并且这个问题出现了:
“以下代码的什么结果将出现在终端上?”
x = [1, "two", 3, "four", 5, "six"]
(x+x)[x[2]:x[2] + x[4]][(x+x)[8]]
我测试了一下,答案是1。但是,我似乎无法为之困惑。如果有人愿意在这里解释逻辑,将不胜感激!
答案 0 :(得分:3)
>>> x = [1, "two", 3, "four", 5, "six"]
>>> (x+x)[x[2]:x[2] + x[4]][(x+x)[8]]
1
现在可以将其分为步骤。首先,我们将x
与自身连接起来,这将产生一个新列表:
>>> (x+x)
[1, 'two', 3, 'four', 5, 'six', 1, 'two', 3, 'four', 5, 'six']
这与x * 2
或2 * x
相同。
现在,自然地,x[2]
是索引2或3
的元素,而x[4]
是5
。 x[2] + x[4]
的值为8
。
现在,我们按元素[3:8]
分割连接列表,得到原始索引的3 ... 7:
>>> (x+x)[x[2]:x[2] + x[4]]
['four', 5, 'six', 1, 'two']
最后,我们再次使用(x + x)[8]
对该列表进行索引-这将返回级联列表的索引8处的元素3。这用于从上一步中选择列表的索引3处的元素这是1
和six
之间的数字two
...