我正试图在代码战中解决这个问题而且我完全难过了:
y = [-1, -1, 2, 8, -1, 4]
z = [1,3,5]
#to create [1,3,2,8,5,4]
Run Code Online (Sandbox Code Playgroud)
我该怎么做?
我试着这样做:
for e in range(len(y)):
try:
if y[e] < 0:
y[e] = z[e]
except:
pass
Run Code Online (Sandbox Code Playgroud)
但这只有在负面与z中的内容相对应时才有效.
Kas*_*mvd 11
如果您确定负数的数量始终相等,则z可以转换z为可迭代并使用列表推导来创建新列表:
In [9]: z = iter(z)
In [10]: [next(z) if i < 0 else i for i in y]
Out[10]: [1, 3, 2, 8, 5, 4]
Run Code Online (Sandbox Code Playgroud)
请注意,如果长度z小于负数的数量,则会引发StopIteration错误.
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |