[:] 运算符在 Python 中的元组中到底如何工作?

问题描述 投票:0回答:1

print(extraction[0])
打印
[<colorgram.py Color: Rgb(r=245, g=243, b=238), 64.68350168350169%>
然后
extraction[0].rgb
打印
Rgb(r=245, g=243, b=238)

这是最令人困惑的部分:

当我输入

print(extraction[0].rgb[:])
时,它会打印
(245, 243, 238)
[:]
运算符在这里到底是如何工作的?

import colorgram
 
extraction = colorgram.extract('img.jpg', 30)
colors = []
 
for c in extraction:
    colors.append(c.rgb[:])
 
print(colors)

当我使用 colorgram 库时,我遇到了一个 [:] 运算符,我不明白它是如何工作的。

python operators slice
1个回答
0
投票

以下是切片运算符如何工作的详细说明:

  • list[start:end]
    :返回一个新列表,其中包含从索引
    start
    到(但不包括)索引
    end
    的所有元素。
  • list[start:]
    :返回一个新列表,其中包含从索引
    start
    到列表末尾的所有元素。
  • list[:end]
    :返回一个新列表,其中包含从列表开头到(但不包括)索引
    end
    的所有元素。
  • list[:]
    :返回整个列表的浅拷贝。

对于

extraction[0].rgb[:]
,它创建一个包含颜色的所有 RGB 值的元组。

这是一个带有列表的示例:

lst = [1, 2, 3, 4, 5]
print(lst[:])  # This will print [1, 2, 3, 4, 5]

在此示例中,

lst[:]
返回一个新列表,其中包含原始列表
lst
的所有元素。

在您的代码中,切片运算符用于提取每种颜色的 RGB 值并将它们附加到

colors
列表中。结果是一个元组列表,其中每个元组代表从图像中提取的颜色的 RGB 值。

© www.soinside.com 2019 - 2024. All rights reserved.