簡體   English   中英

將兩個相鄰列表元素轉換為元組並保留其余列表的Python方法

[英]Pythonic way to convert two adjacent list elements to a tuple and preserve rest of list

我正在尋找一種優雅的轉換方式

lst = [A, B, C, D, E..]

lst = [A, B, (C, D), E]

因此,鑒於我想在索引2和3上執行此操作,但保留列表。 是否有一種優雅的方式來執行此操作? 我正在使用lambda函數,但沒有看到它。

只需就地更改:

lst[2:4] = [tuple(lst[2:4])]

切片分配確保我們用分配右側的列表內容替換舊元素,該列表僅包含一個元組。

演示:

>>> lst = ['A', 'B', 'C', 'D', 'E']
>>> lst[2:4] = [tuple(lst[2:4])]
>>> lst
['A', 'B', ('C', 'D'), 'E']

您可以使用:

lst[2] = lst[2], lst.pop(3)

或更一般而言:

lst[i] = lst[i], lst.pop(i+1)

但是,您必須確保兩個索引都有效,以避免IndexError異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM