Python:选择字符串项
Python: Pick String items
必须在 python 2.7 中完成,因为分配程序。
编写一个函数 def get_strings(mixed_list):,其中 return 是一个新列表,其中 mixedList 中的所有字符串类型项作为参数给出。字符串项的顺序必须与原始列表匹配。例如,如果使用这样的列表调用...
[1, 'a', 2, 'b', True, 'e']
该函数应该return一个像这样的列表:
['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
你可以试试这个:
def get_strings(mixed_list):
return [i for i in mixed_list if isinstance(i, str)]
对于 Python 2.7,正如@Bernana 建议的那样:
def get_strings(mixed_list):
return [i for i in mixed_list if isinstance(i, basestring)]
考虑使用 list comprehension along with 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']
in python2.7 isinstance
不适用于 str
但适用于 basestring
.
它应该看起来像:
lst = [1, 'a', 2, 'b', True, 'e']
l = []
print([x for x in lst if isinstance(x, basestring)])
必须在 python 2.7 中完成,因为分配程序。
编写一个函数 def get_strings(mixed_list):,其中 return 是一个新列表,其中 mixedList 中的所有字符串类型项作为参数给出。字符串项的顺序必须与原始列表匹配。例如,如果使用这样的列表调用...
[1, 'a', 2, 'b', True, 'e']
该函数应该return一个像这样的列表:
['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
你可以试试这个:
def get_strings(mixed_list):
return [i for i in mixed_list if isinstance(i, str)]
对于 Python 2.7,正如@Bernana 建议的那样:
def get_strings(mixed_list):
return [i for i in mixed_list if isinstance(i, basestring)]
考虑使用 list comprehension along with 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']
in python2.7 isinstance
不适用于 str
但适用于 basestring
.
它应该看起来像:
lst = [1, 'a', 2, 'b', True, 'e']
l = []
print([x for x in lst if isinstance(x, basestring)])