[英]Python “and if” equivalent
假設“ mylist”可以包含值“ video”,“ audio”,“ visual”或全部三個。 如果希望在“ mylist”中找到一個字符串,我希望腳本將匹配的數據追加到“文件”列表中,如果“ mylist”中只有一個字符串,則可以工作,但是如果有多個字符串,則只有第一個字符串可以工作在“ mylist”中匹配。 有什么我可以代替“ ifif”的“ elif”使用的嗎?
if request.method == 'POST':
mylist = request.POST.getlist('list')
files = []
if 'video' in mylist:
files.append('/home/dbs/public_html/download/codex/codex.html')
elif 'audio' in mylist:
files.append('/home/dbs/public_html/download/audio/audio_player.html')
elif 'visual' in mylist:
files.append('/home/dbs/public_html/download/visual/visual.html')
return HttpResponse(files)
else:
return http.HttpResponseForbidden()
只需使用if
代替elif
。
if 'video' in mylist:
files.append('/home/dbs/public_html/download/codex/codex.html')
if 'audio' in mylist:
files.append('/home/dbs/public_html/download/audio/audio_player.html')
if 'visual' in mylist:
files.append('/home/dbs/public_html/download/visual/visual.html')
您還可以使用一個映射對象和一個循環,如果存在多個項目,則更好,因為您不必`... in mylist
代碼中重復`... in mylist
:
paths = {
'video': '/home/dbs/public_html/download/codex/codex.html',
'audio': '/home/dbs/public_html/download/audio/audio_player.html',
'visual': '/home/dbs/public_html/download/visual/visual.html'
}
files += [path for key, path in paths.iteritems() if key in mylist]
為什么不只是呢? 你想,如果它發生各種情況。 每個子句之間沒有關系。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.