首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从列表中重新排列一个元组并打印出新的元组?

从列表中重新排列一个元组并打印出新的元组?
EN

Stack Overflow用户
提问于 2022-04-10 18:46:40
回答 2查看 78关注 0票数 1

如果我问错了这个问题,很抱歉。

我创建了一个for循环,遍历这个元组列表。最终的结果应该是将元组从“make1”、“model2”、“color3”重新排列为“color3”、“make1”、“model2 2”。

我现在的指纹是:

代码语言:javascript
复制
1965 Pontiac GTO blue
1969 Plymouth Roadrunner yellow
2002 Chevrolet Z-28 Camero black

如何抓取每个列表中的最后一个项目,并将其重新排列到列表中的第二个位置?

代码语言:javascript
复制
car1 = ['1965', 'Pontaic', 'GTO', 'blue']
car2 = ['1969', 'Plymouth', 'Roadrunner', 'yellow']
car3 = ['2002', 'Chevrolet', 'Z-28 Camero', 'black']

allCars = (car1, car2,  car3)

for i in range(len(allCars)):
    print(' '.join(allCars[i]))
EN

回答 2

Stack Overflow用户

发布于 2022-04-10 18:53:50

如果预先知道每个列表的大小,则可以通过硬编码索引手动指定所需的重新排列:

代码语言:javascript
复制
for car in allCars:
    print(' '.join([car[0], car[3], car[1], car[2]]))

如果需要使其更加灵活(即能够处理任意插入索引,则可以使用同样的方法对列表切片和解压缩):

代码语言:javascript
复制
DEST_IDX = 1

for car in allCars:
    print(' '.join([*car[:DEST_IDX], car[-1], *car[DEST_IDX:-1]]))

这两项产出:

代码语言:javascript
复制
1965 blue Pontaic GTO
1969 yellow Plymouth Roadrunner
2002 black Chevrolet Z-28 Camero
票数 0
EN

Stack Overflow用户

发布于 2022-04-10 19:02:52

只需再使用一个元组来指定所需的顺序:

代码语言:javascript
复制
car1 = ['1965', 'Pontaic', 'GTO', 'blue']
car2 = ['1969', 'Plymouth', 'Roadrunner', 'yellow']
car3 = ['2002', 'Chevrolet', 'Z-28 Camero', 'black']

cars = (car1, car2,  car3)

order=(0,3,1,2)

for car in cars:
    print(' '.join([car[i] for i in order]))

指纹:

代码语言:javascript
复制
1965 blue Pontaic GTO
1969 yellow Plymouth Roadrunner
2002 black Chevrolet Z-28 Camero
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71819582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档