按照输入顺序输出
将输入的名字去重,同时按照输入顺序输出
s=input().split(',')
b=list(set(s))
b=sorted(b,key=s.index)
print(b)
删除集合元素、更新集合
根据操作删除更新集合
update括号里可以是一个集合,add只能是一个元素
discard用于删除元素,如果该元素在集合中不存在不抛出异常,而remove则会抛出异常
n=int(input())
s=set(input().split(' '))
for i in range(n):
a=input().split()
if a[0]=="print":
print(sorted(list(s)))
elif a[0]=="del":
s.discard(a[1])
elif a[0]=="clear":
s.clear()
elif a[0]=="add":
s.add(a[1])
elif a[0]=="update":
s.update(a[1:])
if __name__ == '__main__':
Python中“if __name__=='__main__':”详细解析 - 知乎 (zhihu.com)
当哪个模块被直接执行时,该模块“__name__”的值就是“__main__”,当被导入另一模块时,“__name__”的值就是模块的真实名称。用一个类比来解释一下:记得小时候要轮流打算教室,轮到自己的时候(模块被直接执行的时候),我们会说今天是“我”(__main__)值日,称呼其他人时,我们就会直接喊他们的名字。所以,“__main__”就相当于当事人,或者说第一人称的“我”。
集合的运算(交集&,全集|,差集-,
with open('/data/bigfiles/sale2019.csv', 'r', encoding='utf-8') as data2019:
sale2019 = [[line.strip().split(',')[0], float(line.strip().split(',')[1])] for line in data2019]
with open('/data/bigfiles/sale2018.csv', 'r', encoding='utf-8') as data2018:
sale2018 = [[line.strip().split(',')[0], float(line.strip().split(',')[1])] for line in data2018]
set2019 = set([x[0] for x in sale2019])
set2018 = set([x[0] for x in sale2018])
select = input()
if select == '1':
print(sorted(set2019),sorted(set2018),sep='\n')
elif select == '2':
print(sorted(list(set2019&set2018)))
elif select == '3':
print(sorted(list(set2019|set2018)))
elif select == '4':
print(sorted(list(set2019-set2018)))
elif select == '5':
print(sorted(list(set2019^set2018)))
lambda表达式
n=int(input())
ls=[]
for i in range(n):
name,age=input().split()
ls.append({"name":name,"age":age})
a=list(sorted(ls, key=lambda x:x['age']))
b=list(sorted(ls, key=lambda x:x['name']))
print(a)
print(b)
lambda表达式算是python一种比较方便的语法了,主要作用是代替简单的函数
python 之lambda表达式 - 知乎 (zhihu.com)