发布网友 发布时间:2022-04-18 04:04
共4个回答
热心网友 时间:2022-04-18 05:34
这个问题很有趣呀。
x = [2>1]首先[4,3]为一个列表,[2>1]也为一个列表为[Ture]。
p=[4,3]显然就相当于p=[4,3],而后相当于x=p[Ture],而这里的Ture可以理解为位置1(但只是可以这样理解,并不等同于1),即下标为1.同理可以看如下例子:
x=[4,3][2<1]显然当为Flase时,相当于下标为0,区第一个数值。
热心网友 时间:2022-04-18 06:52
第一次看这么写的,居然也没有报错。个人理解等于3的原因是,2>1 返回的是True,在Python里,非空非0即为真,这个True也可以理解为1,所以[4,3][1]就是切片操作,取到3,当然,随着前面列表的不同,取到的值会相应变化。前面列表可以是任何值,比如['A','B'][2>1]得到的结果就是'B'追问切片操作为什么取得是3而不是4追答python中,可迭代对象的下标从0开始
热心网友 时间:2022-04-18 08:26
2>1为逻辑值true,以这个true对[4,3]进行切片被当成1来使用。Python中可迭代对象索引从0开始,所以[4,3][1]向右偏移1位切片到的元素是3。热心网友 时间:2022-04-18 10:18
[4,3][2>1] 等效于[4,3][True]
[4,3][True] 等效于[4,3][1] = 3