我在尝试从单个数组中分离字符串和int / float时遇到了麻烦。到目前为止,我只能找到从列表中删除/提取具有特定字符串或数字但不是数据类型的方法:(
输入:
a = [1,2,3,'a',4,11,212,'a','b','c',3,32,4,'d','e']
期望的输出:
['a','a','b','c','d','e']
答案 0 :(得分:3)
Python有isinstance()函数来检查对象是否属于给定类型 顺便说一下你的给定清单是不正确的!
>>> l = [1, 2, 3, 'a', 4, 11, 212, 'a', 'b', 'c', 3, 32, 4, 'd', 'e']
>>> [item for item in l if isinstance(item, str)]
['a', 'a', 'b', 'c', 'd', 'e']
答案 1 :(得分:1)
您可以使用type()
功能区分不同的数据类型。
答案 2 :(得分:1)
您可以使用:
a = [1,2,3,'a',4,11,212,'a','b','c',3,32,4,'d','e']
[x for x in a if type(x)==str]
输出是:
['a', 'a', 'b', 'c', 'd', 'e']
答案 3 :(得分:0)
有很多方法可以实现这种情况,你也可以使用惯用的方法,
a = [1,2,3,'a',4,11,212,'a','b','c',3,32,4,'d','e']
print [item for item in a if type(item) is str]
Output list: ['a', 'a', 'b', 'c', 'd', 'e']