鱼C论坛

 找回密码
 立即注册
查看: 1572|回复: 3

[已解决]关于稀疏矩阵存储作业的问题

[复制链接]
发表于 2020-4-25 23:56:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
稀疏矩阵是一系列数字,其中大部分项是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




  1. def sparseArraySum(a,b):

  2.     return a+b


  3. i = input()
  4. list1= list(map(int, i.split(" ")))
  5. n = input()
  6. list2= list(map(int, n.split(" ")))

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


  8. print(" ".join(str(i) for i in c))
复制代码


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


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


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

  8. list1=[1,2,3]
  9. list2=[1,2,3]
  10. list3=[1,2,3]
  11. res=map(add,list1,list2,list3)
  12. print(res)
复制代码

" ".join(str(i) for i in c这确实是通过空格来链接str(i)然后返回新的字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-26 02:38:21 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +1 鱼币

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

  8. list1=[1,2,3]
  9. list2=[1,2,3]
  10. list3=[1,2,3]
  11. res=map(add,list1,list2,list3)
  12. print(res)
复制代码

" ".join(str(i) for i in c这确实是通过空格来链接str(i)然后返回新的字符串
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 08:04:09 | 显示全部楼层

回帖奖励 +1 鱼币

我就看看,领个鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-26 08:33:52 | 显示全部楼层
我也是看看领鱼币
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 04:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表