Python 反转元组的某些部分

标签 python python-3.x python-2.7

假设我有以下元组:

a = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)

我想要做的是反转元组的某些部分。

例如 4 个元素保持不变,然后 4 个元素将颠倒过来。

我想要得到以下结果:

a = (1,2,3,4,8,7,6,5,9,10,11,12,16,15,14,13,17,18,19,20) 

我怎样才能实现这一点(以Python的方式)?

谢谢...

最佳答案

元组是不可变的,但是,通过将 a 转换为 list,可以执行就地赋值:

a = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
new_a = list(a)
for c, i in enumerate(range(0, len(a), 4)):
  if c%2: 
     new_a[i:i+4] = new_a[i:i+4][::-1]

print(tuple(new_a))

输出:

(1, 2, 3, 4, 8, 7, 6, 5, 9, 10, 11, 12, 16, 15, 14, 13, 17, 18, 19, 20)

关于Python 反转元组的某些部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51659879/

相关文章:

python-3.x - MatPlotLib美元符号与数千个逗号刻度标签

python - Pandas 按预期 Str 实例分组,找到的 float

python - 你如何终止/中断/中止 Python 控制台/sys.stdin readline()?

带有 QGis 的 Python 脚本 - Python.exe 停止工作

Pythonanywhere - 错误代码 : Unhandled Exception

Python 列出异常内存使用情况

python - 如何在python中使用SCAN连接到Oracle-RAC?

python - 如何在 Matplotlib 中生成嵌套图例

python - 应用程序未显示在 Django 管理站点中

python - Scrapy 图像管道