이제 두 가지 (다소 복잡한) 목록 / 사전이 있습니다. 첫 번째는 이미지 이름과 16 진수 이미지 픽셀 색상을 포함합니다. 따라서 다음과 같이 보입니다.
{
0: {'hex': ['#c3d6db', '#c7ccc0', '#9a8f6a', '#8a8e3e'], 'filename': 'imag0'},
1: {'hex': ['#705b3c', '#6a5639', '#442f1e', '#4a3d28'], 'filename': 'img-xyz'},
…
}
따라서이 경우에는 2 x 2 px 2 개의 이미지가 있습니다.
두 번째 사전에는 많은 16 진수 값이 키로, ID가 값으로 포함되어 있습니다. 다음과 같이 보입니다.
{'#b0a7aa': '9976', '#595f5b': '19367', '#9a8f6a': '24095'…}
이제 제가하고 싶은 것은 두 번째 목록 중 하나와 일치하는 내 이미지 (첫 번째 목록)의 색상 값이 있는지 확인하는 것입니다. 그렇다면 첫 번째 목록의 파일 이름과 두 번째 목록의 일치하는 키의 ID 값을 알고 싶습니다.
어떻게 이걸 달성 할 수 있습니까?
사전보기 객체 를 사용 하여 hex
목록과 16 진수 사전 사이의 교차점을 생성합니다 .
for entry in images.values():
for key in hexidmap.keys() & entry['hex']:
print('{} {} {}'.format(entry['filename'], key, hexidmap[key]))
&
키 세트와 16 진수 값 목록 사이의 교차점을 생성합니다.
위는 Python 3을 사용하고 있다고 가정합니다. 대신 Python 2를 사용 dict.viewkeys()
하는 경우 .keys()
.
데모:
>>> images = {
... 0: {'hex': ['#c3d6db', '#c7ccc0', '#9a8f6a', '#8a8e3e'], 'filename': 'imag0'},
... 1: {'hex': ['#705b3c', '#6a5639', '#442f1e', '#4a3d28'], 'filename': 'img-xyz'},
... }
>>> hexidmap = {'#b0a7aa': '9976', '#595f5b': '19367', '#9a8f6a': '24095'}
>>> for entry in images.values():
... for key in hexidmap.keys() & entry['hex']:
... print('{} {} {}'.format(entry['filename'], key, hexidmap[key]))
...
imag0 #9a8f6a 24095
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다