【发布时间】:2015-07-20 21:55:52
【问题描述】:
正在研究一种算法,从标准套牌中发 6 张牌,并将发牌组合与目标素数进行比较。由于排列数组“结果”的索引,代码出现错误。有什么建议吗?
import random
cards=[1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,
10,11,,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13,1,2,3,4,5,6,7,8,9,10,11,12,13]
deal=[0,0,0,0,0,0]
for i in range(0,6):
deal[i]=cards.pop(random.randint(0,len(cards)-1))
print(deal)
Result = [[0 for x in range(3)] for x in range(256)]
Result[0][0]= deal[0]+deal[1]
Result[0][1]= deal[0]-deal[1]
Result[0][2]= deal[0]*deal[1]
Result[0][3]= deal[0]/deal[1]
for i in range(2,5):
for j in range(2^(2*j),256):
Result[0][j]= Result[0][j]+deal[i]
Result[1][j]= Result[0][j]-deal[i]
Result[2][j]= Result[0][j]*deal[i]
Result[3][j]= Result[0][j]/deal[i]
print(Result)
错误信息是: 回溯(最近一次通话最后): 文件“C:/Users/xxx/Desktop/Dealhit.py”,第 16 行,在 结果[0][3]=成交[0]/成交[1]
IndexError:列表索引超出范围。这会创建一个 [4x1024] 数组,其中大部分为空值。
【问题讨论】:
-
请发布您的完整错误信息。
-
你的意思是
len(Result) - 1吗? -
是的,还在习惯语法
标签: python arrays algorithm sorting indexing