3.python的几个函数:itertools.combinations()排列组合、zip()压缩打包、format、enumerate、np.linalg.norm求范数

文章目录

  • 1.itertools.combinations()
    • 1.1 对于集合
    • 1.2 对列表
  • 2. combinations_with_replacement()
    • 2.1 集合
    • 2.2 列表
  • 3.zip(), *zip()
  • 4. format()
  • 5.enumerate()
  • 6. np.linalg.norm()求范数

1.itertools.combinations()

官方文档镇楼:官方文档传送门,点击这里!
官方文档讲解的很详细,还配example。

1.1 对于集合

集合本身具有去重的特性(互异性),还有就是itertools在Py3里面返回的是一个地址!需要转化为list才可以打印出来,具体请看下面栗子:

from itertools import combinations
s={'a','a','a','b','b'}
print(combinations(s,2))  

3.python的几个函数:itertools.combinations()排列组合、zip()压缩打包、format、enumerate、np.linalg.norm求范数_第1张图片
结果显示,打印在了后面那个地址里面,解决办法so easy!!!

print(list(combinations(s,2)))

在这里插入图片描述
看到了么,这里输入集合的话,排序时候会自动去重。接下来看列表的效果

1.2 对列表

from itertools import combinations
s=['a','a','a','b','b']
print(list(combinations(s,2)))

3.python的几个函数:itertools.combinations()排列组合、zip()压缩打包、format、enumerate、np.linalg.norm求范数_第2张图片
列表的话是打印出来的全部(不包括自己和自己的组合以外)的组合。

因为:
在这里插入图片描述
官方解释,这个不包括重复元素本身。

2. combinations_with_replacement()

官方文档同上面那个链接!
这个区别就是元素可以自己和自己组合。

2.1 集合

from itertools import combinations_with_replacement
s={'a','a','a','b','b'}
print(list(combinations_with_replacement(s,2)))

在这里插入图片描述

2.2 列表

from itertools import combinations_with_replacement
s=['a','a','a','b','b']
print(list(combinations_with_replacement(s,2)))

在这里插入图片描述

3.zip(), *zip()

a=[1,2,3,4]
b=[5,6,7,8,9]
zipped=zip(a,b)

在这里插入图片描述
py3.好多这种啊,输出的是对象,需要转化一下
在这里插入图片描述
在这里插入图片描述
压缩与解压缩。

4. format()

可以代替占位符%的一种写法,字符串格式化,强大!直接上栗子!

# 不设置参数
print("{} {}".format("hello","world"),\
"{2} {0} {1}".format("love","China","I"),sep=".")

3.python的几个函数:itertools.combinations()排列组合、zip()压缩打包、format、enumerate、np.linalg.norm求范数_第3张图片

# 设置参数
print("1.我{a},你{b}".format(a="很帅",b="也很帅"),'\n',\
     "2.我{c},你{d}".format(**{"c":"很帅","d":"也很帅"}),'\n',\
     "3.我{0[0]},你{0[1]}".format(['很帅','也很帅']))

3.python的几个函数:itertools.combinations()排列组合、zip()压缩打包、format、enumerate、np.linalg.norm求范数_第4张图片
参考菜鸟:菜鸟传送门!点击这里

5.enumerate()

这个函数就是将数据组合成一个索引序列,输出数据和数据下标。

suibian = ["清","北","复","交"]
print(list(enumerate(suibian,start=1))) # 默认start=0

在这里插入图片描述
也可以使用for循环,如下:

suibian = ["清","北","复","交"]
for i ,element in enumerate(suibian,start=1):
    print (i , element)

3.python的几个函数:itertools.combinations()排列组合、zip()压缩打包、format、enumerate、np.linalg.norm求范数_第5张图片

6. np.linalg.norm()求范数

np.linalg.norm(x, ord=None, axis=None, keepdims=False)
参数 解释 取值
默认 L2 L2范数
ord=1 L1 绝对值
ord=2 L2
ord=np.inf 无穷范数 max()
axis=0 跨行
axis=1 跨列

以上。

你可能感兴趣的:(python基础)