在python中,这是什么意思:a = L [x]

时间:2020-09-02 02:41:51

标签: python

我有这段代码:

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:
[]

3 个答案:

答案 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,在获取listsdictionaries中的值等方面非常有用。

订阅表达式是其中第一部分(此处为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'