编写一个函数,列表(元素为字符串)ls为参数,找出其中字符串内容为整数的所有元素并转换为整数, 将其中能被5整除的数升序排列,不能被5整除的数降序排列; 按照排序后能被5整除的数在前,不能被5整除的数在后的顺序组成一个新列表,返回该新列表。 主程序中输入一串以逗号分隔的数字字符串,调用上述函数,输出返回的列表
时间: 2024-02-03 12:14:54 浏览: 83
plsql和tsql常用函数比对
可以使用以下代码实现该函数:
```python
def sort_numbers(ls):
nums = []
for s in ls:
if s.isdigit():
nums.append(int(s))
nums_divisible_by_5 = sorted(filter(lambda x: x % 5 == 0, nums))
nums_not_divisible_by_5 = sorted(filter(lambda x: x % 5 != 0, nums), reverse=True)
return nums_divisible_by_5 + nums_not_divisible_by_5
```
该函数首先遍历输入列表,将其中能转化为整数的元素转化为整数并存储在一个新列表`nums`中。
然后,使用`filter`函数和`lambda`表达式筛选出能被5整除和不能被5整除的数,并分别进行升序和降序排列。
最后,将能被5整除的数和不能被5整除的数合并成一个新列表并返回。
可以使用以下代码调用该函数:
```python
input_str = input("请输入以逗号分隔的数字字符串:")
ls = input_str.split(",")
result = sort_numbers(ls)
print(result)
```
其中,`input`函数用于从标准输入读取用户输入的字符串,`split`方法用于将字符串按照逗号分隔为一个字符串列表,然后将该列表作为参数调用上述函数并输出结果。
阅读全文