我正在寻找一种优雅的转换方式
lst = [A, B, C, D, E..]
到
lst = [A, B, (C, D), E]
所以我想在索引2和3上执行此操作,但保留列表。有一种优雅的方式来执行此操作吗?我正在寻找一个lambda函数,但我没有看到它。
答案 0 :(得分:5)
就地改变:
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']
答案 1 :(得分:0)
您可以使用:
lst[2] = lst[2], lst.pop(3)
或更一般地说:
lst[i] = lst[i], lst.pop(i+1)
但是,您必须确保两个索引在避免IndexError
例外时都有效。