如果list中既包含字串,又包含整數,由於非字串型別沒有lower()方法,所以列表生成式會報錯:
>>> [s.lower() for s in l]
traceback (most recent call last):
file "", line 1, in file "", line 1, in attributeerror: 'int' object has no attribute 'lower'
使用內建的isinstance
函式可以判斷乙個變數是不是字串:
>>> x = 'abc'
>>> y = 123
>>> isinstance(x, str)
true
>>> isinstance(y, str)
false
請修改列表生成式,通過新增if
語句保證列表生成式能正確地執行:
>>>[s.lower() for s in l if isinstance(s,str)]
執行結果如下圖所示:
廖雪峰Python習題集 條件判斷
小明身高1.75,體重80.5kg.請根據bmi公式 體重除以身高的平方 幫小明計算他的bmi指數,並根據bmi指數 低於18.5 過輕 18.5 25 正常 25 28 過重 28 32 肥胖 高於32 嚴重肥胖 用 if elif判斷並列印結果 coding utf 8 height 17.5 ...
Python習題集(四)
如果乙個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如 153 1 3 5 3 3 3,因此 153 就是乙個水仙花數 那麼問題來了,求1000以內的水仙花數 3位數 int轉字串序列,獲取到每一位數 呼叫math.pow函式求立方和 三個數字立方和相加 lists for i in ...
Python習題集(十二)
請寫乙個函式find odd,引數是1個列表,請返回該列表 現奇數次的元素 比如 find odd 1,1,2,2,5,2,4,4,1,2,5 1 find odd 20,1,1,2,2,3,3,5,5,4,20,4,5 5 find odd 10 10 迴圈列表 呼叫列表內建統計函式計算當前元素出...