[英]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.