Pythonで作成しているアプリの基本的な手順は次のとおりです。
- ランダムな色のリストを生成する
- 3D(r、g、b)空間の「ソースカラー」までのそのカラーの距離によってインデックス付けされた、これらの各カラーのマッピングを作成します。(たとえば、オレンジ(255、150、0)はダークブルー(0、0、100)よりも赤(255、0、0)に近いです。)これで、形式(距離、色)のタプルのリストができました。 )。
- 計算した距離に基づいてタプルのリストを並べ替えます(最小から最大まで)。
- ソートされた色のリストを取得します
これが私の関数で、次のエラーが発生します。TypeError:'int'オブジェクトに属性がありません'_ getitem _'行にsorted_by_dist=sorted(colorMap、key = lambda tup:tup [0])
# Sorts a list of colors according to distance from the source color
def sort_colors(colors, source):
colorMap = ()
sortedColors = list()
for i in range(len(colors)):
dist = dist_3d(colors[i], source)
colorMap = colorMap + (dist, colors[i])
sorted_by_dist = sorted(colorMap, key=lambda tup: tup[0])
for (d, c) in sorted_by_dist:
sortedColors.append(c)
return sortedColors
私のdist_3d()関数が正しく、整数値を返すと仮定すると(そうです、そしてそうします)、私は何を間違っていますか?理解できない。