Python 如何使用if语句和';elif';?
首先,我有一个包含各种链接的列表。例如:Python 如何使用if语句和';elif';?,python,python-2.7,Python,Python 2.7,首先,我有一个包含各种链接的列表。例如: imagelinks = [ 'http://24.media.tumblr.com/e13983b2fcfa441eb18861cf3e9bc0e9/tumblr_mzzdmmkoS81r2gyhfo1_500.jpg', 'A%2F%2F31.media.tumblr.com%2Favatar_c3eb4dbb6150_64.png' 'http://31.media.tumblr.com/avatar_c3eb4dbb6150_16.png' 'h
imagelinks = [
'http://24.media.tumblr.com/e13983b2fcfa441eb18861cf3e9bc0e9/tumblr_mzzdmmkoS81r2gyhfo1_500.jpg',
'A%2F%2F31.media.tumblr.com%2Favatar_c3eb4dbb6150_64.png'
'http://31.media.tumblr.com/avatar_c3eb4dbb6150_16.png'
'http://24.media.tumblr.com/tumblr_lyrqzcl2Mf1rnn3koo1_1280.jpg'
等等。我想做的是只留下链接,以1280结尾。所以我写了这段代码来帮助清理列表:
def cleanImageLinks():
global imagelinks
removed = 0
for link in imagelinks:
if link[27:33] == 'avatar':
imagelinks.remove(link)
removed += 1
elif link[len(link)-6:len(link)-4] == '16':
imagelinks.remove(link)
removed += 1
elif link[len(link)-6:len(link)-4] == '40':
imagelinks.remove(link)
removed += 1
elif link[len(link)-6:len(link)-4] == '00':
imagelinks.remove(link)
removed += 1
elif link[len(link)-6:len(link)-4] == '28':
imagelinks.remove(link)
elif link[0] == "A":
imagelinks.remove(link)
removed += 1
else:
pass
print str(removed) + " entries removed!"
所以最后我得到了“436条删除的条目”,但当我打印列表时,我仍然可以找到链接,我不想到处都找到。由于名单上有2000多个条目,436条并不多。我能做什么?不要修改原始文件,使用列表理解创建一个新文件:
In [1036]: imagelinks = [
...: 'http://24.media.tumblr.com/e13983b2fcfa441eb18861cf3e9bc0e9/tumblr_mzzdmmkoS81r2gyhfo1_500.jpg',
...: 'A%2F%2F31.media.tumblr.com%2Favatar_c3eb4dbb6150_64.png',
...: 'http://31.media.tumblr.com/avatar_c3eb4dbb6150_16.png',
...: 'http://24.media.tumblr.com/tumblr_lyrqzcl2Mf1rnn3koo1_1280.jpg']
In [1043]: newlinks=[i for i in imagelinks if i.split('.')[-2].endswith('1280')]
...: print newlinks
...: print '%d links are removed.'%(len(imagelinks)-len(newlinks))
#outputs:
['http://24.media.tumblr.com/tumblr_lyrqzcl2Mf1rnn3koo1_1280.jpg']
3 links are removed.