摆动的呆毛 发表于 2020-4-25 23:56:41

关于稀疏矩阵存储作业的问题

稀疏矩阵是一系列数字,其中大部分项是0。存储稀疏矩阵的一个高效方式是字典,其中键是非0值的位置,值是序列中该位置对应的值。例如,序列0 0 0 0 0 4 0 0 2 9可以表示为字典{5:4,8:2,9:9}。编写函数sparseArraySum,参数是两个这样的字典a和b,得到一个表示向量和的稀疏矩阵。也就是说,结果中位置i的值是a和b中位置i上值的和。假设稀疏矩阵数字序列长度为10。


输入格式:

两个表示稀疏矩阵的数字序列,数字之间空格分隔,结尾无空格,回车换行输入下一个数字序列



输出格式:

一个表示稀疏矩阵求和结果的数字序列,数字之间空格分隔,结尾无空格



输入样例:

1 0 3 0 0 4 0 0 2 6

6 0 0 0 1 2 0 0 0 3



输出样例:

7 0 3 0 1 6 0 0 2 9




def sparseArraySum(a,b):

    return a+b


i = input()
list1= list(map(int, i.split(" ")))
n = input()
list2= list(map(int, n.split(" ")))

c=list(map(sparseArraySum,list1,list2))


print(" ".join(str(i) for i in c))

c=list(map(sparseArraySum,list1,list2))这里是怎么求和的


" ".join(str(i) for i in c这里是不是通过空格来链接i然后返回新的字符串


ouyunfu 发表于 2020-4-26 02:38:21

本帖最后由 ouyunfu 于 2020-4-26 02:40 编辑

#map函数的原型是map(function, iterable, …),它的返回结果是一个列表。
#参数function传的是一个函数名,可以是python内置的,也可以是自定义的。
#参数iterable传的是一个可以迭代的对象,例如列表,元组,字符串这样的。
#这个函数的意思就是将function应用于iterable的每一个元素,结果以列表的形式返回。注意到没有,iterable后面还有省略号,意思就是可以传很多个iterable,如果有额外的iterable参数,并行的从这些参数中取元素,并调用function。如果一个iterable参数比另外的iterable参数要短,将以None扩展该参数元素。
#举个简单的例子:
def add(x,y,z):
    return x+y+z

list1=
list2=
list3=
res=map(add,list1,list2,list3)
print(res)
" ".join(str(i) for i in c这确实是通过空格来链接str(i)然后返回新的字符串

majian890324 发表于 2020-4-26 08:04:09

我就看看,领个鱼币

chenyumrx 发表于 2020-4-26 08:33:52

我也是看看领鱼币
页: [1]
查看完整版本: 关于稀疏矩阵存储作业的问题