欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 列表 使用练习

程序员文章站 2022-04-18 20:31:33
...

1.列表表达式与列表排序

列表中的元素也是可迭代的对象如列表、元组等时,要根据这些元素的某个子元素对列表排序,常规排序方式失效,需要用sorted()函数并指定key。
题目:

输入一组数到列表nums,请找到列表中任意两个元素相加能够等于9的元素,形成一个元组,使其小数在前大数在后,如:(2,7),(1,8)。重复的元组元素只保留一个,结果按元组第一个元素从小到大顺序输出。
【样例输入】

numbers:3,4,5,7,2,8,1

【样例输出】

[(1, 8), (2, 7), (4, 5)]

示例解答如下:

def get_tuple(num_list):
    temp_list = []
    for i in num_list:
        if (9 - i) in num_list:
            min = (9 - i) if (i >= (9 - i)) else i
            max = i if min == (9 - i) else (9 - i)
            if (min,max) not in temp_list:
                temp_list.append((min,max))
    return temp_list

nums = input()
num_list = [int(i) for i in nums.split(',')]

result_list = get_tuple(num_list)
result_list = sorted(result_list,key=lambda i:i[0])

print(result_list)

代码运行演示如下:
Python 列表 使用练习
说明:
[int(i) for i in nums.split(',')]是列表表达式,有更高的执行效率;
sorted(result_list,key=lambda i:i[0])对列表进行排序,因为列表中有多个元素,要根据每个元素的第一个子元素来排序,必须使用key来指定排序所依据的元素,同时还是用了lambda表达式,给定一个元素,返回第一个子元素。

相关标签: Python实战