由于分配程式,必須在python 2.7中完成。
撰寫一個函式 def get_strings(mixed_list):,它回傳一個新串列,其中包含作為引數給出的混合串列中的所有字串型別項。字串項的順序必須與原始串列匹配。例如,如果使用這樣的串列呼叫...
[1, 'a', 2, 'b', True, 'e']
該函式應回傳如下串列:
['a', 'b', 'e']
l = []
s = string.ascii_letters
for i in range(random.randint(15,25)):
r = random.randint(0,2)
if r == 0:
ind = random.randint(0, len(s) -1 )
l.append(s[ind : ind random.randint(1, 4) ])
elif r == 1:
l.append(random.randint(-50,50))
else:
l.append(random.choice([True, False, 1.0 / random.randint(1, 10) ]))
print ("Whole list:", l)
print ("Strings only:" , get_strings(l))
import random
uj5u.com熱心網友回復:
你可以試試這個:
def get_strings(mixed_list):
return [i for i in mixed_list if isinstance(i, str)]
對于@Bernana 建議的 Python 2.7:
def get_strings(mixed_list):
return [i for i in mixed_list if isinstance(i, basestring)]
uj5u.com熱心網友回復:
在 python2.7isinstance中將無法使用str但與basestring.
它應該看起來像:
lst = [1, 'a', 2, 'b', True, 'e']
l = []
print([x for x in lst if isinstance(x, basestring)])
uj5u.com熱心網友回復:
考慮使用串列理解以及isinstance:
def get_strings(mixed_list):
return [x for x in mixed_list if isinstance(x, str)]
l = [1, 'a', 2, 'b', True, 'e']
print ("Whole list:", l)
print ("Strings only:" , get_strings(l))
輸出:
Whole list: [1, 'a', 2, 'b', True, 'e']
Strings only: ['a', 'b', 'e']
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/357676.html
標籤:Python 列表 python-2.7 元组
上一篇:PIP不會安裝腳本,任何版本
