Python表达式sorted([111,2,33], key=lambda x: -len(str(x)))的值为什么?
时间: 2023-03-14 20:53:15 浏览: 666
答案是[111, 33, 2],因为sorted()函数按照key指定的lambda表达式(即-len(str(x)))对列表中的每个元素进行排序,根据提供的lambda表达式,按照每个元素字符串的长度进行排序,从最长到最短,所以最终结果为[111, 33, 2]。
相关问题
下列表达式的值为()。sorted(["黑色",“红色","黄色"key=lambda x:len(str(x)))
这个表达式会报错,因为列表中的字符串没有用引号括起来。如果将其修改为如下形式:
```python
sorted(["黑色", "红色", "黄色"], key=lambda x: len(str(x)))
```
那么这个表达式的返回值为 `['黑色', '红色', '黄色']`,即根据字符串长度从小到大排序后的列表。
Python定义一个函数, 接收data=[[321,30,32,300],[72,725],[321,34,32,344]], 对每个子列表中的全部整数进行拼接, 返回每个子列表能够生成的最小整数
可以使用Python中的lambda表达式和sorted函数来实现:
```python
def min_num(data):
"""
返回每个子列表能够生成的最小整数
"""
return [int(''.join(map(str, sorted(sub, key=lambda x: -len(str(x)))))) for sub in data]
```
其中,lambda表达式用来对子列表中的整数进行排序,按照数字字符串的长度从长到短进行排序,以保证能够生成最小整数。sorted函数则用来对子列表进行排序。最后利用map函数和join函数将子列表中的数字拼接成字符串,并转换为整数返回。
示例输出:
```python
>>> data = [[321,30,32,300],[72,725],[321,34,32,344]]
>>> min_num(data)
[3003032132, 72572, 32134324344]
```