続・BeautifulSoupのスクレイピングの練習

import BeautifulSoup
import urllib
真偽, 空欄, Noneしか返さない
[i.get('href') and i.get('href').endswith('jpg')  for i in soup.findAll('a')]
Noneも返っちゃう
[i.get('href') if i.get('href') and i.get('href').endswith('jpg') else None for i in soup.findAll('a')]
tagオブジェクトのリストを返す 1
soup.findAll(lambda x: x.name == 'a' and x.get('href') and x.get('href').endswith('jpg'))
tagオブジェクトのリストを返す 2
filter(lambda x: x.get('href') and x.get('href').endswith('jpg') , soup.findAll('a'))
tagオブジェクトのリストを内包表記内で展開してリンクurlのみを返す
[i.get('href') for i in
    soup.findAll(lambda x:
        x.name == 'a' and x.get('href') and
        x.get('href').endswith('jpg'))]
tagオブジェクトのリストを内包表記内で展開してリンクurlのみを返したののさらに内包表記内でretrieve
[urllib.urlretrieve(url, url.split('/')[-1])
    for url in
    [i.get('href') for i in
        soup.findAll(lambda x: x.name == 'a' and
        x.get('href') and x.get('href').endswith('jpg'))]]
素直に書くとこんな感じでしょうか
ls = filter(lambda x: x.get('href') and x.get('href').endswith('jpg') , soup.findAll('a'))
ls = [i.get('href') for i in ls]
[urllib.urlretrieve(url, url.split('/')[-1]) for url in ls]

どういうのが素敵な書き方なのかわからないです。
リストの内包表記とか三項演算とか書き方忘れてることにビビった。

map(lambda url: urllib.urlretrieve(url, url.split('/')[-1]), [i.get('href') for i in BeautifulSoup.BeautifulSoup(urllib.urlopen('http://guideline.livedoor.biz/archives/50948055.html')).findAll(lambda x: x.name == 'a' and x.get('href') and x.get('href').endswith('jpg'))])