kir*_*off 30 python dictionary list-comprehension
我有两个列表xscat和yscat.我希望列表理解能分别在xscat和yscat中选取x和y.结果列表应包含peaks([x[0], y[0]]), peaks([x[1], y[1]])
等
xscat=yscat=[-1, -1.5,5]
[peaks([x,y]) for x,y in xscat,yscat]
Run Code Online (Sandbox Code Playgroud)
你能找到任何使用理解的解决方案吗?或其他方式(地图)?
Ned*_*der 44
zip
是你想要的:
[peaks([x,y]) for x,y in zip(xscat,yscat)]
Run Code Online (Sandbox Code Playgroud)
Mat*_*ick 11
你需要使用zip
:
[peaks([x,y]) for (x,y) in zip(xscat, yscat)]
Run Code Online (Sandbox Code Playgroud)
我假设你的例子中你想使用zip(),但是,如果你真正想做的是迭代xscat和yscat的所有可能的组合,那么你还有更多工作要做...
所以,如果你想要(xscat [0],yscat [0]),(xscat [0],yscat [1]),(xscat [0],yscat [2])等...你可以先做一个嵌套理解:
((x,y)表示xscat中的x表示yscat中的y)
将生成所有对和
[xscat中x的峰值(x,y),yscat中的y]
如果你想要所有的排列,应该产生解决方案.
另外,请注意zip/map - 如果列表(xscat和yscat)的长度不同,您将获得不同的结果 - 确保选择产生所需解决方案的结果.