格式: 变量名 = { 元素1 , 元素2 ....}
set,另一种高级变量数据类型,它存储的数据不仅是无序的而且是不重复的。
作用:用于对列表或者元组去重。
set1 = {1,5,6,2,5,7,7,5,2,3,1}
print(set1)
print(len(set1))
print(type(set1))
结果:
{1, 2, 3, 5, 6, 7}
6
以上例子说明当set容器中元素有重复时,在输出的时候会把重复的元素去掉,容器的长度也是实际去重之后的长度。
set1 = {1,3,5,10,100}
set2 = {2,4,6,10,200}
set3 = set1 - set2 #在set1且不在set2
print(set3)
set4 = set2 - set1 #在set2且不在set1
print(set4)
set5 = set2 & set1 #set1与set1的交集
print(set5)
set6 = set2 | set1 #set1与set1的并集
print(set6)
set7 = set2 ^ set1 #set3与set4的并集
print(set7)
#结果
#{1, 3, 100, 5}
#{200, 2, 4, 6}
#{10}
#{1, 2, 3, 4, 100, 6, 5, 200, 10}
#{1, 2, 3, 4, 5, 6, 200, 100}
使用set(list/tuple)就可以实现去重。
list1 = [8,6,8,4,2,6,9,5,6,9,5]
tuple1 = (3,6,5,9,5,2,4,5,9)
result_list = set(list1)
result_tuple = set(tuple1)
print("去重之后:(注意使用set去重之后就是set类型,若还想换回原来的类型需要强转!)")
print(result_list)
print(result_tuple)
print("\n强转之后:")
print(list(set(list1)))
print(tuple(set(tuple1)))
结果:
去重之后:(注意使用set去重之后就是set类型,若还想换回原来的类型需要强转!)
{2, 4, 5, 6, 8, 9}
{2, 3, 4, 5, 6, 9}
强转之后:
[2, 4, 5, 6, 8, 9]
(2, 3, 4, 5, 6, 9)
range的作用是生成一个整数序列。
格式:range(起始数,结束数,步长),左闭右开。开始数默认为0,步长默认是1.
range经常与for结合使用。
a = range(0,5)
print(a)
for i in a:
print(i)
结果:
range(0, 5)
0
1
2
3
4
以表达式的方式快捷生成一个列表,格式: 列表名 = [ 计算公式 for 其他]
list1 = [i for i in range(1,10)]
print(list1)
匿名函数就是没有名字的函数,主要使用lambda表达式实现的。格式: lambda 参数:表示式
func = lambda a,b:a+b
print(type(func))
结果:
func = lambda a,b:a+b
print(func(1,2))
结果:
3
lambda表达式会把计算结果直接返回
result = (lambda a:a ** 2) (3)
print(result)
结果:
9
在定义lambda表达式的时候用()括住整个定义,然后再传参调用。
from functools import reduce
list1 = [1,2,3,4,5]
ret_filter = filter(lambda x: x % 2,list1)
print('type(ret_filter):{},ret_filter:{},list(ret_filter):{}'.format(type(ret_filter),ret_filter,list(ret_filter)))
ret_map = map(lambda x: x + 2,list1)
print('type(ret_map):{},ret_map:{},list(ret_map):{}'.format(type(ret_map),ret_map,list(ret_map)))
ret_reduce = reduce(lambda x,y:x + y,list1)
print('type(ret_reduce):{},ret_reduce:{}'.format(type(ret_reduce),ret_reduce))
结果:
type(ret_filter):,ret_filter:,list(ret_filter):[1, 3, 5]
type(ret_map):,ret_map: