鱼C论坛

 找回密码
 立即注册
查看: 1597|回复: 3

[已解决]运行时老是出现list index out of range 求原因!!!

[复制链接]
发表于 2016-12-5 21:52:03 | 显示全部楼层 |阅读模式

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

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

x

  1. filePath='E:/Temp/'
  2. Emod = [9000 for i in xrange(20)]
  3. EdgeEltList = map(int, open(r'E:\Temp\fanyan-20ceng-force-model-EdgeEltList.txt').readline().split(','))
  4. b = zip(EdgeEltList,range(20))
  5. DICx = map(float, open(r'E:\Temp\fanyan-20ceng-force-model-DIC-le11.txt').readline().split(','))
  6. DICy = map(float, open(r'E:\Temp\fanyan-20ceng-force-model-DIC-le22.txt').readline().split(','))
  7. DICxy= map(float, open(r'E:\Temp\fanyan-20ceng-force-model-DIC-le12.txt').readline().split(','))
  8. J1 = [(DICx[i]+DICy[i]) for i in xrange(20)]
  9. J2=[(DICx[i]*DICy[i]+DICxy[i]**2/4) for i in xrange(20)]
  10. #Read input file
  11. inputTxt = open(filePath + '20ceng-force-model.inp').readlines()

  12. fileNameNew='fanyan-20ceng-0'
  13. for i in xrange(20):
  14.     inputTxt[525 + i*3] = str(Emod[i])+', 0.3\n'    ##modify some lines in inp file

  15. open(filePath + fileNameNew + '.inp','w').writelines(inputTxt)

  16. for iLoad in xrange(10):
  17.     fileNameNew='fanyan-20ceng-' + str(iLoad)   
  18.    
  19.     temp = []
  20.     for i in open(filePath + fileNameNew + '.rpt'):
  21.         try: temp.append(map(float, i.split()))
  22.         except: pass
  23.    
  24.     dataFromFile = [i for i in temp if i!=[]]
  25.    
  26.     keyslist = [dataFromFile[i][0] for i in xrange(len(dataFromFile))]
  27.     valslistX = [dataFromFile[i][1] for i in xrange(len(dataFromFile))]
  28.     valslistY = [dataFromFile[i][2] for i in xrange(len(dataFromFile))]
  29.     valslistXY = [dataFromFile[i][3] for i in xrange(len(dataFromFile))]
  30.     J11 = [(valslistX[i]+valslistY[i]) for i in xrange(160)]  #160=total number of elts
  31.     J22=[(valslistX[i]*valslistY[i]+valslistXY[i]**2/4) for i in xrange(160)]
  32.    
  33.     for i,j in b:
  34.             a=[(J1[j]-J11[i])/J1[j]]
  35.             c=[(J2[j]-J22[i])/J2[j]]
  36.    
  37.   
  38.     for i,j in b:
  39.             if a[j]>c[j]:
  40.                      Emod[j]=Emod[j]+Emod[j]*((J1[j]-J11[i])/J1[j])
  41.             else:
  42.                      Emod[j]=Emod[j]+Emod[j]*((J2[j]-J22[i])/J2[j])
  43.     #Write strain value   
  44.     open(filePath+fileNameNew+'-Emod.txt','w').writelines([str(i)+'\t'+str(Emod[j])+'\n' for i,j in b]) ##space(kongge) and enter(huanhang)      
  45.    
  46.    








复制代码
最佳答案
2016-12-6 15:07:29
数组下标越界,应该是一个只有n个元素的数组L,你想获取L[m],m>=n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-5 21:55:30 | 显示全部楼层
完整的出错信息
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-12-6 15:07:29 | 显示全部楼层    本楼为最佳答案   
数组下标越界,应该是一个只有n个元素的数组L,你想获取L[m],m>=n
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-12-14 11:43:57 | 显示全部楼层
SixPy 发表于 2016-12-5 21:55
完整的出错信息

C:\Users\Administrator\Desktop
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 01:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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