我有这段代码:
private get activeProductPhotoURL_ForImagesViewer(): string {
if (this.product.photosURLs.length === 0) {
return PRODUCT_DUMMY_PHOTO_URL;
}
return this.product.photosURLs[this.activeProductPhotoArrayIndexForImagesViewer];
}
这两行代码是什么意思:
checkpoint
uploadedProductPhotosURLs:
[__ob__: Observer]
'product.photosURLs' before updating:
[
"https://XXX/c732d006-1261-403a-a32f-f73c0f205aa8.jpeg",
"https://XXX/2b7ae2e2-4424-4038-acee-9624d5b937bc.jpeg"
]
'product.photosURLs' after updating:
[]
答案 0 :(得分:0)
a = L[x]
在值L
处索引到变量x
(如列表或字典),然后将该值存储到变量a
中。
与b类似:
b = L[-x + 1]
这意味着以值L
索引到-x + 1
并将其存储到变量b
中。
答案 1 :(得分:0)
那是一些索引。我们用它来提取某些数据的特定部分。 my_list = [1、2、3、4、5] my_dictionary = {“ element_one”:1,“ element_two”:2}
这可能有点令人困惑,但是您可以通过将其建立索引来调用该数据,其基本原理是该
RecipesController
将返回1。第一个元素将从0开始并持续进行。
@recipe
那将返回3。至于字典,它调用一个特定值。
print(my_list[0])
将返回2.如果您有任何疑问,请随时给我发消息!
答案 2 :(得分:0)
L[x]
是subscription expression,在获取lists和dictionaries中的值等方面非常有用。
订阅表达式是其中第一部分(此处为L
)的对象,支持订阅。支持订阅的对象可以是内置类型,例如列表或字典。它也可以是具有__getitem__
方法的用户定义类型。
def sum(L):
for x in range(len(L) //2):
a = L[x]
b = L[-x + 1]
x
是一个从0迭代到列表L
长度一半的值。因此,L[x]
只会继续前进L
,直到达到一半为止。但是-x + 1
将是1
,然后是0
,然后是-1
,依此类推。由于列表支持负下标,因此您将获得列表的最后一半,一个一次进入。 (但是,如果您打算添加L[1]
,则前两个值L[0]
和a + b
可能是bug。)
如果主变量[意味着
L
是一个映射,则表达式列表必须求值为一个对象,该对象的值是该映射的键之一,并且订阅将在该映射中选择与那把钥匙。 (表达式列表是一个元组,除非它只有一个项目。)
>>> L = {'dictionaries': 'are cool', 'and so': 'are you'}
>>> L['dictionaries']
'are cool'
如果主要对象是序列,则表达式列表必须计算为整数或切片(如下节所述)。
>>> L = [1,2,3,4]
>>> L[3]
4
如果您尝试对不能下标的对象使用订阅,则可能会得到TypeError
:
>>> 1[3]
>>> 1[3]
<stdin>:1: SyntaxWarning: 'int' object is not subscriptable; perhaps you missed a comma?
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable
(但请注意!字符串是序列,因此可以下标!)
>>> 'hello'[3]
'l'