用嵌套范围解释此代码的输出

时间:2016-03-02 06:40:48

标签: python list range

所以代码是:

X = range(4, 7)
Y = range(2)
X[2] = Y
print X[2][0]
print X[2][1]

X[2][0] = 9
print Y[0]

输出

0
1
9

代码究竟在做什么来获得输出?如果代码看起来像

X = range(4, 7)
print X[-1]

然后输出会是什么,因为我对负值的作用感到困惑。

2 个答案:

答案 0 :(得分:2)

>>> X = range(4, 7)  # List of number from 4 to 6
>>> Y = range(2)     # List of number from 0 to 1
>>> X
[4, 5, 6]
>>> Y
[0, 1]
>>> X[2] = Y         # Stored 'Y' at X[2] in place of '6'
                     # X[2]  is referencing Y  
>>> X
[4, 5, [0, 1]]
>>> print X[2][0]    # '0'th index of X[2] i.e Y[0] 
0
>>> print X[2][1]    # '1'th index of X[2] i.e Y[1]
1
>>> X[2][0] = 9      # Set '0'th index of X[2] i.e Y[0] as 9
>>> Y[0]
9
>>> Y
[9, 1]
>>> X
[4, 5, [9, 1]]

现在回答您与negative index相关的另一个问题。 -i作为索引represnt i来自最后一个元素。例如:

>>> X = range(4, 7)
>>> X
[4, 5, 6]
>>> X[-1]    # 1st element from last
6
>>> X[-3]    # 3rd element from last
4

答案 1 :(得分:0)

如果一个字符串的值为x =“Hello”,则从左到右为这些字符分配值0,1,2,3,4,从右到左分配-1,-2,-3,-4,-5,如果你说

print x[-1] 

如果你说

,它将返回'o'
print x[0] 

它将返回'H',希望澄清。