목록이 있으며 '*'가 가장 적은 요소를 찾고 싶습니다. 가장 낮은 수의 목록에서 요소를 가져옵니다. *
mylist = ['12*3','12345**6','11234']
그래서이 작은 시험에서 답이 작동 '11234'
하지만 느린 (I 대규모 게놈 데이터로 작업하고 있습니다 :
sorted(mylist, key = lambda x: x.count('*'))[0]
를이 덜 설득력하지만 작품입니다 :
values = map(lambda x: x.count('*'), mylist)
print mylist[values.index(min(values))]
는 더 좋은 방법이 있나요 나는 찌언 트랜스을하려고했다? 형성 그러나 그것을 알아낼 수 없다.
귀하의 타이밍 차이가 상당하지 않을 것이라고 생각합니다. 확실히 "람다 함수가 느리다"는 주장을 뒷받침 할만큼 충분하지 않거나 - 더 관대하게 느리다. 동일한 스 니펫을 여러 번 실행하면 이름이 지정된 함수가 앞으로 나오고 때로는 '람다'가 앞 당깁니다. 이것은 내가 차이가 순전히 소음 및/또는 혼란스런 요인이라고 믿게한다. AFAIK는 CPython에서'lambda'와'def' 함수의 구현에 실제적인 차이점이 없습니다. 'lambda'의 실행이 동등한 명명 된 함수보다 느린 이유는 없습니다. –