第一版最简单的代码:
def Vote_Summary(narray): list_len = len(narray[0]) result_list = [0] * list_len list_num = len(narray) for nlist in narray: for i in range(len(nlist)): if nlist[i] == 1: result_list[i] = result_list[i]+1 for i in range(len(result_list)): if result_list[i] >= (list_num/2): result_list[i] = 1 else: result_list[i] = 0 print(result_list) narray = [[0,1,0,0,1],[1,0,0,1,0],[1,0,0,1,0]] Vote_Summary(narray)
1.首先是定义定长0列表的问题
定义定长list的表达式: list = [0] *100
之前记忆里面的是, numpy.zero(10),这是numpy包里的函数,而且出来的是数组array
第二版用了切片的代码:
import numpy def Vote_Summary(nlist): list_len = len(nlist[0]) list_num = len(nlist) result_list = [0]*list_len narr = numpy.array(nlist) for col_num in range(list_len): narr_col = narr[: , col_num] num_1 = 0 for i in narr_col: num_1 = num_1 + i if(num_1 >= (list_num/2)): result_list[col_num] = 1 print(result_list) nlist = [[0,1,0,0,1],[1,0,0,1,0],[1,0,0,1,0]] Vote_Summary(nlist)
2. 切片的问题。
切片就是一个数组,一维的或者二维的或者更高维的,以二维为例子,从一个长方形里切出一个小长方形来。
arr[ 0 , : ] 切出一行来
只有二维数组可以二维切片,列表list只能一维切片
3.对于列表的修改问题
列表的修改应该是只能用a[i]来修改了,如果是for i in a再去改i,是影响不到数组里的元素的
怪不得很多地方,遍历数组要用len算了长度然后再去for循环