如何从列表中分离数据类型?

时间:2017-01-24 12:55:45

标签: python

我在尝试从单个数组中分离字符串和int / float时遇到了麻烦。到目前为止,我只能找到从列表中删除/提取具有特定字符串或数字但不是数据类型的方法:(

输入:

a = [1,2,3,'a',4,11,212,'a','b','c',3,32,4,'d','e']

期望的输出:

['a','a','b','c','d','e']

4 个答案:

答案 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']