如何交换二维列表元素位置?以调整[85,'pass']为['pass',85]为例
调整二维列表元素顺序的实现
你需要将二维列表中的[85, 'pass']调整为['pass', 85],以下是针对你现有代码的分析和修正方案:
原代码(注释已翻译为中文)
gradebook= [ ["physics", 98], ["calculus", 97], ["poetry", 85], ["history", 88] ] print(gradebook) gradebook.append(["computer science", 100]) print(gradebook) gradebook.append(["visual art", 93]) print(gradebook) # 修改二维列表的值 gradebook[-1][-1]= 98 # 将93加5分改为98 print(gradebook) gradebook[2].remove("poetry")# 删除poetry并替换为pass print(gradebook) gradebook[2].append("pass") print(gradebook)
问题说明
这段代码执行后,gradebook[2]会变成[85, 'pass'],和你想要的['pass', 85]顺序相反。这是因为移除"poetry"后,子列表仅剩85,调用append("pass")会把字符串添加到子列表末尾。
修正方案
方案一:直接替换子列表(最简洁)
直接将目标子列表重新赋值为['pass', 85],替换原有内容:
gradebook= [ ["physics", 98], ["calculus", 97], ["poetry", 85], ["history", 88] ] print(gradebook) gradebook.append(["computer science", 100]) print(gradebook) gradebook.append(["visual art", 93]) print(gradebook) # 修改二维列表的值 gradebook[-1][-1]= 98 # 将93加5分改为98 print(gradebook) # 直接替换目标子列表 gradebook[2] = ['pass', 85] print(gradebook)
方案二:分步调整元素顺序
如果你想保留分步操作的逻辑,可以通过插入和移除来调整顺序:
# 移除"poetry"后,子列表为[85] gradebook[2].remove("poetry") # 在子列表开头插入"pass",得到['pass', 85] gradebook[2].insert(0, "pass")
两种方案都能让gradebook[2]变成你需要的['pass', 85]。
内容的提问来源于stack exchange,提问作者user20082286
相关产品推荐
相关产品推荐

