#1使用列表推导式输出1-100的列表
# print([i for i in range(100)])
#
# #2使用列表推导式输出1-100内的奇数
# print([i for i in range(100) if i%2==1])
# print([i for i in range(1,100,2)])
# print([i for i in range(1,100)][::2])
#3过滤列表中重复的数
a=[2,2,3,1,2,3,4,5,1,2,3,1,2,31,23,12,31,12,2,3,12,3,12,]
#方案1
print(list(set(a)))
#方案2
b=[]
for i in a:
if i not in b:b.append(i)
#方案3,定义计数器
counter={}
for i in a:
if i in counter:
counter[i]+=1
else:
counter[i]=1
print(counter)
print(list(counter.keys()))
#4把重复多次的元素取出来 说明重复非次数
#同上
#5list(列表)和元组的区别
#6迭代器和生成器的区别
#迭代器 可以迭代的对象 列表 字典
#生成器 generator 不保存完整的数据,需要数据时生成数据
#7.如何将迭代器转化为生成器?
print(x for x in range(10))
#8.进程和线程的区别
#线程是程序运行的最小单位
#进程的操作系统管理的最小单元 ,一个进程可以包括很多线程
#9.说一下python的线程的特点
#一遍编程语言 利用的是cpu的多核心 一个线程一个核心 可以最大化效率
#python的多线程有GLI全局锁的,不能真正以上多核
#10.python如何使用多核心?
#使用多进程实现,进行开销相对较大(内存 IO)