给定一个包含多个元组的列表,按元组中第二个元素排序,如果第二个元素相同,则按第一个元素排序
时间: 2023-05-17 13:05:08 浏览: 56
可以使用 Python 中的 sorted() 函数,其中 key 参数指定按哪个元素排序,reverse 参数指定是否降序排列。代码如下:
```python
my_list = [(1, 2), (3, 1), (2, 2), (4, 3), (5, 1)]
sorted_list = sorted(my_list, key=lambda x: (x[1], x[0]))
print(sorted_list)
```
输出结果为:
```
[(3, 1), (5, 1), (1, 2), (2, 2), (4, 3)]
```
其中 lambda 函数指定按元组的第二个元素排序,如果第二个元素相同,则按第一个元素排序。
相关问题
python列表中有很多个元组,删除每个元组的第二个元素
可以使用列表推导式和元组的切片来实现:
```python
lst = [(1, 2), (3, 4), (5, 6)]
new_lst = [t[:1] + t[2:] for t in lst]
print(new_lst) # [(1,), (3,), (5,)]
```
这样就可以删除每个元组的第二个元素。
一个列表每个元素式一个元组,怎么只获取元组的第二个元素作为新列表
您可以使用列表推导式来实现这个功能,具体实现方法如下:
```python
old_list = [(1, "apple"), (2, "banana"), (3, "orange")]
new_list = [item[1] for item in old_list]
print(new_list) # 输出 ["apple", "banana", "orange"]
```
在上面的例子中,我们使用了列表推导式来遍历旧列表中的每个元素,并将其第二个元素添加到新列表中。`item[1]` 表示元组中的第二个元素,因为在 Python 中,元组的下标从 0 开始计数。