我在遇到有关python脚本的问题。我在机器上使用Ubuntu作为第二个操作系统,并且编写了python代码以输出有关某些蛋白质的不同信息。在给我第一个蛋白质的输出后,它会在第二个蛋白质的过程中减慢速度,直到某个时候它不再响应。 当我键入control + c时,我收到以下消息:
func (u *Apple) AfterFind() (err error) {
u.Front= "https://www.example.com/"+ u.Front
u.Back= "https://www.example.com/"+ u.Back
u.Top= "https://www.example.com/"+ u.Top
return
}
停止时的代码部分如下:
Traceback (most recent call last):
File "testPerf.py", line 185, in <module>
uniqueDict(args.input,args.output)
File "testPerf.py", line 73, in uniqueDict
keyName = '%s_%s' %(hmm[i],cassetteId[i])
File "/home/t/anaconda3/envs/crispr-env/lib/python3.7/site-packages/pandas/core/series.py",
line 1071, in __getitem__
result = self.index.get_value(self, key)
File "/home/t/anaconda3/envs/crispr-env/lib/python3.7/site-packages/pandas/core/indexes>>/base.py", line 4708, in get_value
s = getattr(series, "_values", series)
File "/home/t/anaconda3/envs/crispr-env/lib/python3.7/site-packages/pandas/core/series.py", line 562, in _values
这是一段代码,它从名为crisprOutputFile的文件中读取内容,并尝试在字典中输出一些数据,非常容易... 然后,将此字典与其他一些字典结合在一起,以提供包含有关蛋白质数据的输出字典。 请帮助。
答案 0 :(得分:2)
在给定的代码段中,如果在keyName
中找到dict1
,则i
不会递增。
如果i
保持不变,则当前迭代将与先前的迭代相同,因此它将成为无限循环。
如果您实际上打算在每次迭代中更新i
(这更有意义),请像这样降低i+=1
的集成级别
with open(crisprOutputFile, "r") as file1:
data = pd.read_csv(file1)
hmm = data.HMM
cassetteId = data.cassette_id
list1 = data.predicted_label
i = 0
while i < len(hmm):
predictedL = list1[i][7:20]
predictedL = predictedL.replace( ')','')
predictedL = predictedL.replace( ']','')
predictedL = predictedL.replace( "'","")
predictedL = predictedL.replace( ',','')
keyName = '%s_%s' %(hmm[i],cassetteId[i])
if keyName not in dict1:
dict1[keyName] = predictedL
i+=1
如@ run-out在评论中所建议,我建议您使用for
循环。