python - 我打印我的值,但它附加了初始值
问题描述
我有这段代码,它运行一种称为 Tomkins-Paige 算法的算法。该算法创建序列的排列。问题是代码打印了不同的排列 p,但是当我尝试将它附加到列表时,它只附加了初始 p,即 p = [1,2,3,4]。
import numpy as np
n = 4
p = [i for i in range(1,n+1)]
c = [1 for i in range(1,n+1)]
i = 2
print(p)
listp = []
while i <= n:
shift = np.roll(p[:i],-1)
for k in range(len(shift)):
p[k] = shift[k]
if c[i-1] < i:
c[i-1] += 1
i = 2
print(p, c, i )
listp.append(p)
else:
c[i-1] = 1
i += 1
有关算法的更多信息:https ://en.wikipedia.org/wiki/Tompkins%E2%80%93Paige_algorithm
提前致谢 :)
解决方案
推荐阅读
- scala - Apache Flink - Kafka 生产者的 Json 案例类
- arcgis - ArcGIS JS API:使圆不缩放
- vue.js - 编译失败。./src/main.js 未找到模块:错误:无法解析 'C:\vue\testvueapp\src' 中的 '.plugins/vuetify'
- spring-boot - 当服务部署在 Google Cloud 中时,当 Spring Cloud Config 服务器的 POST /actuator/bus-refresh 出现“方法不允许”错误
- python - 在终端中多行打印列表
- ios - 是否需要释放 dispatch_queue_create 创建的 dispatch_queue_t
- javascript - Babel unshiftcontainer 未创建元素
- c++ - 不需要 std::generate 中的运算符 ()?
- ios - 用于签署“Runner”的证书已过期或已被吊销。使用颤振的 Xcode
- html - 让两个按钮彼此相邻