Python集删除非数值
我设置了如下值:Python集删除非数值,python,python-2.7,Python,Python 2.7,我设置了如下值: set(['Virtual', '120', 'P', '130', '90', '250', '100', '10', 'Mar', 'indicates', '18', '50', '40', '1', '|']) 如何删除所有非数值 预期产出: set(['120', '130', '90', '250', '100', '10','18', '50', '40', '1']) 您可以创建一个新集合: number_set = set() for object in
set(['Virtual', '120', 'P', '130', '90', '250', '100', '10', 'Mar', 'indicates', '18', '50', '40', '1', '|'])
如何删除所有非数值
预期产出:
set(['120', '130', '90', '250', '100', '10','18', '50', '40', '1'])
您可以创建一个新集合:
number_set = set()
for object in old_set:
try:
number_set.add(int(object))
except ValueError:
print("Not a number")
print(number_set)
也可以尝试从集合中删除所有非数值对象:
for object in old_set:
try:
x = int(object)
execpt ValueError:
old_set.remove(object)
您可以使用清洁剂清洁电视机:
s = set(['Virtual', '120', 'P', '130', '90', '250', '100', '10', 'Mar', 'indicates', '18', '50', '40', '1', '|'])
def isInt(text):
"""Returns True for a text that is convertable to int() else False."""
try:
_ = int(text)
return True
except ValueError:
return False
# apply filter:
filteredSet = set( filter(lambda x:isInt(x), s))
print(filteredSet)
输出:
{'18', '90', '130', '120', '40', '50', '10', '1', '100', '250'}
此输出与您想要的不同,但python就是这样用print打印集的。您是否尝试过解决此问题?你面临什么问题?