2.4ならジェネレータ式を使って、
(x for x in list1 if x.attr == k).next()

あるいは、
itertools.ifilter(lambda x: x.attr == k, list1).next()

ただ、どちらも該当要素が無い場合は例外が飛ぶ。