l=[1,'abc',234,'www']#对列表中的字符元素删除,保留数值类元素并排序输出,这大神们教教
如下:
l=[1,'abc',234,'www']
for i in l:
if type(i) == str:
l.remove(i)
s = sorted(l)
print(s)
如有帮助,望采纳
l=[1,'abc', 234,'www']
res = [i for i in l if isinstance(i, (int, float))]
print(sorted(res))
"""--result
[1, 234]
"""
初学者可以这样写:
>>> l = [1, 'abc', 234, 'www']
>>> result = list()
>>> for item in l:
if isinstance(item, (int, float)):
result.append(item)
>>> result
[1, 234]
有经验的程序员会这样写:
>>> l = [1, 'abc', 234, 'www']
>>> [item for item in l if isinstance(item, (int, float))]
[1, 234]
使用python基础函数isinstance判断是否为字符元素
l = [1, 'abc', 'aaa', 'www', 2, 3, 4]
# 将待删除的元素暂存,不能直接在list中删除,list中删除之后索引会变,导致for出现异常遍历
del_item = []
for item in l:
if isinstance(item, str):
del_item.append(item)
# 删除字符元素
for item in del_item: l.remove(item)
# 倒序排序 desc
l.sort(reverse=True)
# l.sort() # 正序排序 asc
print(l)