튜플의 특정 요소를 제거하는 방법은 무엇입니까? 예를 들어튜플의 특정 요소를 제거하는 방법은 무엇입니까?
:
L={('a','b','c','d'):1,('a','b','c','e'):2}
remove='b'
내가의 결과 싶어 :
{('a','c','d'):1,('a','c','e'):2}
튜플의 특정 요소를 제거하는 방법은 무엇입니까? 예를 들어튜플의 특정 요소를 제거하는 방법은 무엇입니까?
:
L={('a','b','c','d'):1,('a','b','c','e'):2}
remove='b'
내가의 결과 싶어 :
{('a','c','d'):1,('a','c','e'):2}
In [20]: L={('a','b','c','d'):1,('a','b','c','e'):2}
In [21]: {tuple(y for y in x if y != "b"):L[x] for x in L}
Out[21]: {('a', 'c', 'd'): 1, ('a', 'c', 'e'): 2}
또는 filter()
사용이 :
In [24]: { tuple(filter(lambda y:y!="b",x)) : L[x] for x in L}
Out[24]: {('a', 'c', 'd'): 1, ('a', 'c', 'e'): 2}
그러면 일부 키가 중복되어 렌더링되어 서로 겹쳐 쓸 수 있습니다. – Eduardo
목록 내재가 필터보다 선호됩니다. – inspectorG4dget
@ 에두아르도 네, 사전은 사전 작동 방식입니다. –
당신의 업데이트 된 버전을 만들 수를 사전 사전 이해 표현식을 사용하여 :
L = {('a', 'b', 'c', 'd'): 1, ('a', 'b', 'c', 'e'): 2, ('f', 'g', 'h'): 3}
remove='b'
L = {tuple(i for i in k if i != remove) if remove in k else k:v for (k,v) in L.items()}
print L
출력 : 당신이 그것을 볼 수 있듯이
{('a', 'c', 'e'): 2, ('a', 'c', 'd'): 1, ('f', 'g', 'h'): 3}
은 혼자 자신의 튜플 키의 요소없이 항목을 떠난다.
왜 그런 구조를 가지고 있는지 더 잘 이해할 수 있습니까? 와트는 하나의 요소를 제거한 후에도 2 개의 키가 같아 지나요? – Eduardo