假设用一组tuple表示学生名字和成绩, L = [(‘Bob’, 75), (‘Adam’, 92), (‘bart’, 66), (‘Lisa’, 88)] 请用sorted()函数对上述列表按分数排序。
时间: 2024-05-02 20:19:55 浏览: 9
当然可以!请看下面的代码:
```python
L = [('Bob', 75), ('Adam', 92), ('bart', 66), ('Lisa', 88)]
sorted_L = sorted(L, key=lambda x: x[1])
print(sorted_L)
```
输出结果为:
```python
[('bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
```
解释一下,我们在使用`sorted()`函数时,传入了一个`key`参数,这个参数是用来指定排序规则的。我们这里使用了一个lambda表达式`lambda x: x[1]`,它的意思是对L中的每一个元素(x),使用其中的第二个元素(x[1])作为排序依据。这样就可以按照成绩从小到大排序了。
相关问题
假设我们用一组tuple表示学生名字和成绩:L =[("Bob", 75), ("Adam", 92), ("Bart", 66), ("Lisa", 88)],请对上述列表分别按成绩升序、降序排序
按成绩升序排序可以使用sorted函数和lambda表达式:
```python
L = [("Bob", 75), ("Adam", 92), ("Bart", 66), ("Lisa", 88)]
L_sorted = sorted(L, key=lambda x: x[1])
print(L_sorted)
```
输出结果为:
```
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
```
按成绩降序排序可以使用sorted函数和lambda表达式:
```python
L = [("Bob", 75), ("Adam", 92), ("Bart", 66), ("Lisa", 88)]
L_sorted = sorted(L, key=lambda x: x[1], reverse=True)
print(L_sorted)
```
输出结果为:
```
[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]
```
假设我们用一组tuple表示学生名字和成绩: L = [("Bob", 75), ("Adam", 92), ("Bart", 66), ("Lisa", 88)],请对上述列表分别按成绩升序、降序排序
好的,针对这个问题,我可以提供以下 Python 代码来对列表进行排序:
```python
L = [("Bob", 75), ("Adam", 92), ("Bart", 66), ("Lisa", 88)]
# 按成绩升序排序
sorted_by_score_asc = sorted(L, key=lambda x: x[1])
# 按成绩降序排序
sorted_by_score_desc = sorted(L, key=lambda x: x[1], reverse=True)
print(sorted_by_score_asc)
print(sorted_by_score_desc)
```
输出结果分别为:
```
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]
```
其中,`sorted()` 函数的第一个参数是要排序的列表,第二个参数是一个用来指定排序方式的 `key` 函数,`lambda x: x[1]` 表示按照列表中每个元素的第二个元素(即成绩)进行排序,`reverse=True` 表示按降序排序。