鱼C论坛

 找回密码
 立即注册
查看: 435|回复: 2

求解决问题~

[复制链接]
发表于 2018-8-26 05:04:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
列表的方法:
生成以下列表:
a = [1,2,3,4,5,6]
b = [1,2,3,4,5,6]
c = [1,2,3,4,5,6]
d = [1,2,3,4,5,6]
e = [1,2,3,4,5,6]
f =  [1,2,3,4,5,6]

要生成的列表得到下面的结果:
a = [1,2,3,4,5,6]
b = [2,3,4,5,6,1]
c = [3,4,5,6,1,2]
d = [4,5,6,1,2,3]
e = [5,6,1,2,3,4]
f = [6,1,2,3,4,5]
目的:任何一个列表中的数字,横竖都不能有和它相同的数。

numpy.array的方法:
numpy.array([[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]])
举例,要的结果是:
numpy.array([[1,2,3,4,5,6],[2,3,4,5,6,1],[3,4,5,6,1,2],[4,5,6,1,2,3],[5,6,1,2,3,4],[6,1,2,3,4,5]])
只要任何一个位置的数,横向和纵向都没有和它重复的就可以了。

要编程过程,重新生成结果也行,用已经生成的列表或者array排序得到也行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-26 11:20:23 | 显示全部楼层
import numpy as np

a = np.array([1,2,3,4,5,6])
b = a[:]
c = a[:]
d = a[:]
e = a[:]
f = a[:]
g = np.array([a,b,c,d,e,f])
L = len(g[0])
for i in range(1,len(g)):
    g[i][0:L-1] = g[i-1][1:L]
    g[i][-1] = g[i-1][0]
print(g)
[[1 2 3 4 5 6]
 [2 3 4 5 6 1]
 [3 4 5 6 1 2]
 [4 5 6 1 2 3]
 [5 6 1 2 3 4]
 [6 1 2 3 4 5]]
a = [1,2,3,4,5,6]
b = a[:]
c = a[:]
d = a[:]
e = a[:]
f = a[:]
g = [a,b,c,d,e,f]
L = len(g[0])
for i in range(1,len(g)):
    g[i][0:L-1] = g[i-1][1:L]
    g[i][-1] = g[i-1][0]
print(g)
[[1, 2, 3, 4, 5, 6], [2, 3, 4, 5, 6, 1], [3, 4, 5, 6, 1, 2], [4, 5, 6, 1, 2, 3], [5, 6, 1, 2, 3, 4], [6, 1, 2, 3, 4, 5]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-26 11:21:53 | 显示全部楼层
本帖最后由 凌九霄 于 2018-8-26 12:11 编辑
a = [ 1, 2, 3, 4, 5, 6 ]

a.insert(0, a.pop())
b = a[ : ]
b.insert(0, b.pop())
c = b[ : ]
c.insert(0, c.pop())
d = c[ : ]
d.insert(0, d.pop())
e = d[ : ]
e.insert(0, e.pop())
f = e[ : ]
f.insert(0, f.pop())

print(a)
print(b)
print(c)
print(d)
print(e)
print(f)

这个更灵活点,能处理任意长度的
def larray(lst, result=[ ]):
    i = len(result)
    i += 1
    if i <= len(lst):
        x = lst[ : ]
        x.insert(0, x.pop())
        result.append(x)
        larray(x)
    return result
print(larray([x for x in range(1,7)]))
[[6, 1, 2, 3, 4, 5], [5, 6, 1, 2, 3, 4], [4, 5, 6, 1, 2, 3], [3, 4, 5, 6, 1, 2], [2, 3, 4, 5, 6, 1], [1, 2, 3, 4, 5, 6]]

print(larray([x for x in range(1,10)]))
[[9, 1, 2, 3, 4, 5, 6, 7, 8], [8, 9, 1, 2, 3, 4, 5, 6, 7], [7, 8, 9, 1, 2, 3, 4, 5, 6], [6, 7, 8, 9, 1, 2, 3, 4, 5], [5, 6, 7, 8, 9, 1, 2, 3, 4], [4, 5, 6, 7, 8, 9, 1, 2, 3], [3, 4, 5, 6, 7, 8, 9, 1, 2], [2, 3, 4, 5, 6, 7, 8, 9, 1], [1, 2, 3, 4, 5, 6, 7, 8, 9]]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 16:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表