如何从字典中删除不是Python中的数字的值?

时间:2016-06-17 09:19:42

标签: python dictionary numbers

我有这种类型的字典

d={"Key":[name,value1,value2]}

我只需要在我的价值列表中输入数字。 如何删除姓名?

Thak you!

3 个答案:

答案 0 :(得分:4)

import numbers

for key, values in d.iteritems():
   d[key] = [x for x in values if isinstance(x, numbers.Number)]

自{2.6}以来numbers包可用。否则,您需要手动检查任何数字类型(int,float,long,complex)

iteritems()已被删除,现在与3.x

中的items()相同

答案 1 :(得分:2)

如果name始终位于列表的开头,那么简单d['Key'][1:]就足够了。否则,您可以使用以下内容:

[i for i in d['Key'] if i.isdigit()]

当然,我假设d['Key']中的所有项都是字符串。否则,您无法使用isdigit()

答案 2 :(得分:-2)

In [1]: d = {'k1': [1,2,3,'a','b','c'], 'k2': ['e',4.3,'f',5.2]}
In [2]: for k,v in d.iteritems():
   ...:     #This will keep only integers, but will fail on the floats since isdigit() return False on non-integers 
   ...:     d[k] = filter(lambda e: str(e).isdigit(), v)

   ...:     #On the other hand, This will be a generic solution for any numeric type
   ...:     d[k] = filter(lambda e: isinstance(e, numbers.Number), v)
   ...:
In [3]: d
Out[3]: {'k1': [1, 2, 3], 'k2': [4.3, 5.2]}