2012-06-07 2 views
0

좋아하는 나는 다음 그래서 만약 :목록에있는 사전에있는 목록에서 변수를 검색하는 방법은 무엇입니까? 이

fruits = [{ 
    name:apple, 
    color:[red,green], 
    weight:1 
}, { 
    name:banana, 
    color:[yellow,green], 
    weight:1 
}, { 
    name:orange, 
    color:orange, 
    weight:[1,2] 
}] 

그래서 내가 무게와 색상으로 이름을 얻을하는 프로그램을 작성해야합니다. 누군가 그 방법을 보여줄 수 있습니까?

def findCarByColor(theColor): 
    z=0 
    for i in carList: 
     for a,b in i.iteritems(): 
      #print a,"a", b, "b" 
      for d in b: 
       #print d 
       if d is theColor: 

        print carList [0][b][0] 



    return z 
print findCarByColor("Red") 
+2

이 숙제입니까? – srgerg

+6

정말 "write me some code"사이트가 아닙니다.하지만 여러분이 직접 코드를 작성하도록 도와 드리겠습니다. 너 뭐 해봤 니? 너 뭐 특별한 걸로 붙어 있니? 몇 가지 코드를 표시하고 몇 가지 질문을하면 필요한 도움을받을 수 있습니다. – Levon

+0

한 마디 업로드 실패 –

답변

2

예제 사전이 수정되었습니다. 문자열을 수동으로 루프 할 필요없이 목록에 문자열이 있는지 확인할 수도 있습니다.

fruits = [{ 
    'name':"apple", 
    'color':["red","green"], 
    'weight':1 
}, { 
    'name':"banana", 
    'color':["yellow","green"], 
    'weight':1 
}, { 
    'name':"orange", 
    'color':"orange", 
    'weight':[1,2] 
}] 

def findit(fruits,color): 
    for indv in fruits: 
     if color in indv['color']: 
      return indv['name'], indv['weight'] 

print findit(fruits,"red") 

결과 : ('apple', 1)

이 기능은 하나 개의 인스턴스를 반환합니다. 당신이 녹색 예를 들어 나타나는 모든 인스턴스를 찾을 필요가있는 경우,이 두 번째 기능은 작동합니다

def findit2(fruits,color): 
    return [(x['name'],x['weight']) for x in fruits if color in x['color']] 

print findit2(fruits,"green") 

는 결과가 될 것입니다 : 당신은 내가 어떻게했는지의 표기 측면에 의해 혼동하는 경우 [('apple', 1), ('banana', 1)]

에 그 한 줄로, pythons docs here을 통해 어떻게 이루어 졌는지보실 수 있습니다. 좀 더 단순화 된 버전을 원한다면. 첫 번째 방법 (findit)을 수정하여 다음을 얻을 수 있습니다.

def findit3(fruits,color): 
    mylist = [] 
    for indv in fruits: 
     if color in indv['color']: 
      mylist.append( (indv['name'], indv['weight']) ) 
    return mylist 
+0

거기에 두 번째 사전과 다른 배열이 있다면 어떻게해야합니까? –

+0

다른 dict와 배열이 있다면? 과일 = [{ '이름': "사과", '색상': [ "빨강", "녹색", '무게'1 }, { '이름': "바나나", '컬러}, { '이름': '주황색', '색상': '주황색', '무게': [1,2] }] –

+0

@ thebiggerchadder 과일 목록의 차이점은 무엇입니까? 당신의 목록은 내가 만든 것과 거의 비슷하게 보입니다. 예제에 표시된 것보다 더 많은 목록과 사전을 겹쳐서 더 복잡해지기를 원했습니까? 파싱 ​​할 필요가있는 것을 보여 주실 수 있습니까? "there"에 두 번째 사전을 언급했지만 "there"를 지정할 수 있습니까? – jakebird451

관련 문제