Python中如何实现3个三元子列表的末尾元素循环交换?
实现嵌套列表末尾元素循环右移的函数
针对你提出的需求——处理包含3个3元素子列表的嵌套列表,将每个子列表的最后一个元素循环右移(第一个子列表末尾元素移至第二个,第二个移至第三个,第三个移至第一个),可以用以下函数实现:
def rotate_last_elements(nested_list): # 复制原列表结构,避免修改输入的原始数据 new_list = [sublist.copy() for sublist in nested_list] # 提前取出三个子列表的末尾元素,防止替换时被覆盖 first_last = new_list[0][-1] second_last = new_list[1][-1] third_last = new_list[2][-1] # 执行循环替换 new_list[0][-1] = third_last new_list[1][-1] = first_last new_list[2][-1] = second_last return new_list
测试示例
original_list = [['1', '2', '3'], ['4', '5', '6'], ['7', '8', '9']] result = rotate_last_elements(original_list) print(result) # 输出结果:[['1', '2', '9'], ['4', '5', '3'], ['7', '8', '6']]
关键说明
- 使用
sublist.copy()复制每个子列表,确保原始输入列表不会被修改(因为列表是可变对象,直接赋值会导致原数据被篡改); - 先缓存三个子列表的末尾元素,避免在替换过程中因覆盖而丢失原始值;
- 按照需求的循环逻辑完成末尾元素的替换,逻辑清晰易维护。
内容的提问来源于stack exchange,提问作者Nightrider
相关产品推荐
相关产品推荐

