Skip to main content

python中星号(*)的用法

这里不说乘法,大家都知道
先看几个测试语句:
import numpy as np
a=np.random.rand(2)
print(a)
print(*a)
输出结果:
[0.95721482 0.55708755]
0.9572148191916312 0.5570875529243636
数列被变成空格分成的数据,是不是字符串呢?我们再检验一下:
b=(*a).split(" ")
输出错误提示:
File "cell_name", line 7
SyntaxError: can't use starred expression here
看来标星的变量不能这么用,经过验证,也不能赋值给别的变量,比如不能c=(*a),是不是分解成两个独立的数据呢?比如函数的参数有多个并且不确定数量的时候,也用*arg这种形式。我们测试一下
import numpy as np
def add(a,b):
    return a+b
a=np.random.rand(2)
print(a)
c=add(*a)
print(c)
结果:[0.03414016 0.46147024]
0.4956103991927776
猜想正确。*只能用在迭代类型上,比如元组,列表

Comments

Popular posts from this blog

Session Run的用法

feed_dict参数的作用是替换图中的某个tensor的值。例如: a = tf.add(2, 5)                        #a=7 b = tf.multiply(a, 3)                 #b=3*7=21 with tf.Session() as sess:     print(sess.run(b))     replace_dict = {a:15}           #用15代替b算式中的a     print(sess.run(b, feed_dict = replace_dict)) --------------------- 输出如下: 21 45

tf.split用法

按照行或者列分割一个矩阵 第一个参数是待切分的张量,第二个是切分的大小,共切分为三个,每一个分别为4列,15列,11列。第三个参数为1表示按照列切分,为0表示按照行切分。 切分的子块的大小加起来应该等于母块的大小。比如这个例子,4+15+11=30列 看下面的代码例子