【python】练习题:去重排序以及列表推导式

来源:互联网 发布:php prematch 编辑:程序博客网 时间:2024/05/19 02:06

一,列表推导式总共有两种形式:

①[x for x in data if condition]
此处if主要起条件判断作用,data数据中只有满足if条件的才会被留下,最后统一生成为一个数据列表

②[exp1 if condition else exp2 for x in data]
此处if…else主要起赋值作用,当data中的数据满足if条件时将其做exp1处理,否则按照exp2处理,最后统一生成为一个数据列表

a=[1,2,3,4,5,6,7,8]#若是奇数就放到odd_num中去odd_num = [i for i in a if i%2!=0 ]#若是奇数就放进去,若是偶数就是平方nums = [i if i%2!=0 else i*i for i in a]print(odd_num)print(nums)

#[1, 3, 5, 7]
#[1, 4, 3, 16, 5, 36, 7, 64]

二,一个小编程题:

题目要求:
这里写图片描述
代码如下:

def get_unique3():    txtfile = open('aaa.txt','r')    lines = txtfile.read().split('\n')    lines = [line.split('\t') for line in lines]    txtfile.close()    all_lines = []    setline = set()    for line in lines:        if(line[0] in setline):            continue        else:            setline.add(line[0])            all_lines.append(line)    result = sorted(all_lines,key=lambda x:x[1],reverse=True)    result = sorted(result, key=lambda x: x[2], reverse=True)    for i in result:        print(i)