亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3306 | 回復: 6
打印 上一主題 下一主題

關于[f for f in list1 if function(f) in list2]中,如果function(f)返回為空的問題 [復制鏈接]

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯賽之天津
日期:2016-12-20 14:01:23
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-04-30 10:11 |只看該作者 |倒序瀏覽
  1. >>> [f for f in li if os.path.splitext(f)[1] in '.sh']
  2. ['file', 'dd.sh']
  3. >>> li = ['a.mp3','b.txt','cc.mp3','file']
  4. >>> [f for f in li if os.path.splitext(f)[1] in '.mp3']
  5. ['a.mp3', 'cc.mp3', 'file']
復制代碼
os.path.splitext(f)[1]返回文件擴展名,如果文件沒有擴展名返回空,這樣的話就不會被指定擴展名過濾。如例子里的file。
怎么解決?

論壇徽章:
11
技術圖書徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
2 [報告]
發(fā)表于 2014-04-30 10:29 |只看該作者
問題簡單化:
  1. [f for f in li if f.endswith('.sh')]
復制代碼
如果有更復雜的過濾,還是寫循環(huán)吧。

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯賽之天津
日期:2016-12-20 14:01:23
3 [報告]
發(fā)表于 2014-04-30 10:49 |只看該作者
@timespace
謝謝!

論壇徽章:
0
4 [報告]
發(fā)表于 2014-04-30 17:32 |只看該作者
我覺得也是用 endwith

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯賽之天津
日期:2016-12-20 14:01:23
5 [報告]
發(fā)表于 2014-05-01 19:36 |只看該作者
@Jpython
但這樣只能簡單過濾.
[f for f in li if os.path.splitext(f)[1] in '.mp3']可以用[f for f in li if f.endswith('.mp3')] 代替。
但 os.path.splitext(f)[1]會根據不同的文件f到多個擴展名,如果要取其中的兩個以上,比如:
[f for f in li if os.path.splitext(f)[1] in ['.mp3','.sh']]
用 endwith就要用循環(huán)了。

論壇徽章:
11
技術圖書徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
6 [報告]
發(fā)表于 2014-05-01 22:28 |只看該作者
回復 5# cao627
這要看具體情況,但恰好你的舉例不用寫循環(huán)。因為:
  1. >>> '' in '.mp3' or '' in '.sh'
  2. True
  3. >>> '' in ('.mps', '.sh')
  4. False
復制代碼

論壇徽章:
6
摩羯座
日期:2013-08-24 10:43:10獅子座
日期:2013-08-25 10:27:06天秤座
日期:2013-09-11 20:28:44午馬
日期:2014-09-28 16:06:0015-16賽季CBA聯賽之八一
日期:2016-12-19 13:55:0515-16賽季CBA聯賽之天津
日期:2016-12-20 14:01:23
7 [報告]
發(fā)表于 2014-05-01 22:58 |只看該作者
本帖最后由 cao627 于 2014-05-01 23:18 編輯

@timespace
我也剛想到這個問題。上來看到你已經發(fā)現問題所在。
空字符串屬于任何字符串,不屬于任何不含空串的序列。我在一樓發(fā)帖時潛意識里將字符串'.mp3'等同['.mp3']了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協(xié)會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP