python中的短代码和符号

时间:2017-10-10 06:09:17

标签: python

我看到一些像这样的代码:

K = np.array([B[z==i].mean(axis=0) for i in range(k)])

其中B是二维数组(矩阵),z是一维数组(向量)。

我想知道B[z==i]是什么意思?

1 个答案:

答案 0 :(得分:0)

B[z==i]中,您有两种类型的操作。

首先,给定B[i] for i in range(k)你在这样的情况下做的是对列表 B 的值的迭代。

在您的情况下,您有z==i,这是对象之间的比较。 在python中,要比较的对象不需要具有相同的类型,但如果类型不同,它们总是返回False

关于比较如何工作的一点摘要:

  

数字进行算术比较。

     

使用数字等价物按字典顺序比较字符串   (字符的内置函数ord())的结果。   在这种行为中,Unicode和8位字符串是完全可互操作的。

     

使用字典比较词典和列表进行比较   相应的元素。这意味着要比较相等的每个元素   必须比较相等,两个序列必须是相同的类型和   长度相同。

     

如果不相等,则序列的排序与第一个序列相同   不同的元素。例如,cmp([1,2,x],[1,2,y])返回   与cmp(x,y)相同。如果相应的元素不存在,那么   首先排序较短的序列(例如,[1,2]< [1,2,3])。

     

映射(字典)比较相等,当且仅当它们已排序   (键,值)列表比较等于.5.3除了相等之外的结果   一致地解决,但没有另外定义。

     

大多数其他类型比较不相等,除非它们是同一个对象;该   选择是否将一个对象视为小于或大于另一个对象   一个是任意的,但在一次执行中是一致的   程序

这份文件有点旧,但您可以获得有关比较的更多信息:source