【发布时间】:2017-11-22 20:24:20
【问题描述】:
我想从y 和z 两个列表中构造列表x。我希望y 中的所有元素都放在ypos 元素指向的位置。例如:
y = [11, 13, 15]
z = [12, 14]
ypos = [1, 3, 5]
所以,x 必须是 [11, 12, 13, 14, 15]
另一个例子:
y = [77]
z = [35, 58, 74]
ypos = [3]
所以,x 必须是 [35, 58, 77, 74]
我已经编写了我想要的功能,但它看起来很丑:
def func(y, z, ypos):
x = [0] * (len(y) + len(z))
zpos = list(range(len(y) + len(z)))
for i, j in zip(y, ypos):
x[j-1] = i
zpos.remove(j-1)
for i, j in zip(z, zpos):
x[j] = i
return x
如何用pythonic的方式写?
【问题讨论】:
-
我猜你需要把这个问题发到codereview.stackexchange.com。
-
@TigranSaluev 更改名称就可以了,所以我认为不是。
-
@martineau,抱歉,已修复
-
@scharette 他有工作代码,并正在寻求改进它的风格以更适合一种语言。这不在 SO 的范围内。
标签: python