car*_*mom 0 python list-comprehension python-3.x
您可以根据如下条件将元素单独留在列表理解中:
>>> mylist = [6,7,3,9,2,7,4]
>>> [x-1 if x!=7 else x for x in mylist]
[5, 7, 2, 8, 1, 7, 3]
Run Code Online (Sandbox Code Playgroud)
然而,我需要的是,如果元素是 7 之后的元素,则该元素被单独留下。
[x-1 if next_element!=7 else x for x in mylist]
Run Code Online (Sandbox Code Playgroud)
期望的输出是:
[6,6,2,8,2,6,3]
Run Code Online (Sandbox Code Playgroud)
我认为这可能通过 enumerate 和索引实现,但无法解决。有任何想法吗?
enumerate并且index是一种方式,但您可以通过以下方式实现zip:
mylist = [6,7,3,9,2,7,4]
[x[0]-(x[1]!=7) for x in zip(mylist, mylist[1:] + [0])]
# [6, 6, 2, 8, 2, 6, 3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1725 次 |
| 最近记录: |