list1 =list(map(int,input().split())) max1 =list1[0] index =1 for i in range(len(list1)): if list1[i]>max1: max1 = list(i) index = i print(max1,index)
时间: 2024-03-24 19:41:08 浏览: 116
在这段代码中,找到最大值的部分有些问题,应该是 `max1 = list1[i]` 而不是 `max1 = list(i)`,因为我们需要把最大值赋给变量 `max1`,而 `list(i)` 是将索引i转换为列表,这是不正确的。
修改后的代码如下:
```python
list1 = list(map(int, input().split()))
max1 = list1[0]
index = 1
for i in range(len(list1)):
if list1[i] > max1:
max1 = list1[i]
index = i + 1
print(max1, index)
```
该程序的输入是一行数字,以空格分隔,例如:
```
1 3 5 2 4
```
输出结果为最大值和对应的索引,例如:
```
5 3
```
相关问题
解释一下f=open('./smility.csv','w') wr=csv.writer(f) df = pd.read_csv('./std_ligand.csv') std_smiles=df['SMILES'].tolist() df1 = pd.read_csv('./gencnn.csv') gen_smiles=df1['SMILES'].tolist() std_mols=[Chem.MolFromSmiles(s) for s in std_smiles] gen_mols=[Chem.MolFromSmiles(s) for s in gen_smiles] score_max=[] index_list=[] count=0 for gen_mol in gen_mols: score_list=[] for mol in std_mols: gen_fp=Chem.RDKFingerprint(gen_mol) fp=Chem.RDKFingerprint(mol) score=DataStructs.FingerprintSimilarity(gen_fp,fp) score_list.append(score) max1= max(score_list) index = score_list.index(max(score_list)) count+=1 score_max.append(max1) score_max.append(index)####与哪个相似性最大下标 print(index) ##下面是将结果存入csv,共两列 def list_of_groups(init_list, children_list_len): list_of_groups = zip(*(iter(init_list),) *children_list_len) end_list = [list(i) for i in list_of_groups] count = len(init_list) % children_list_len end_list.append(init_list[-count:]) if count !=0 else end_list return end_list code_list = list_of_groups(score_max,2) print(code_list) for i in range(count): # print('\t',code_list[i]) # print(code_list[i]) x=code_list[i] print(x) wr.writerows([x]) f.close()
这段代码的主要功能是比较两个SMILES字符串列表中分子的相似性,并将结果存储在一个CSV文件中。
首先,通过读取两个CSV文件,分别获取标准分子和待比较分子的SMILES字符串列表。然后,将SMILES字符串转换为RDKit Mol对象,用于计算分子指纹和相似性分数。
接下来,对于每个待比较分子,计算其与标准分子列表中每个分子的相似性分数,并记录最大分数和对应标准分子的下标。这些结果存储在score_max列表中。
然后,将结果按照每个分子与最相似标准分子的分数和下标组合成一个二元组,存储在code_list列表中。最后,将这些二元组写入CSV文件中。
需要注意的是,代码中使用了list_of_groups函数将score_max列表按照每两个元素一组进行划分,这是因为score_max列表中每个分子有一个最大相似性分数和对应标准分子的下标,需要将它们组合成一个二元组。
self.manager = QThreadPool() self.label.mousePressEvent = self.open_video_max1 self.label_2.mousePressEvent = self.open_video_max2 self.label_3.mousePressEvent = self.open_video_max3
这段代码中,首先创建了一个 `QThreadPool` 对象,并将其赋值给 `self.manager` 属性。`QThreadPool` 是一个线程池,用于管理多线程任务的执行。
接下来,通过将 `self.open_video_max1`、`self.open_video_max2` 和 `self.open_video_max3` 方法分别赋值给 `self.label.mousePressEvent`、`self.label_2.mousePressEvent` 和 `self.label_3.mousePressEvent` 属性,为窗口中的三个 `QLabel` 控件绑定了点击事件。当用户点击对应的 `QLabel` 时,会触发相应的点击事件,从而调用对应的方法。
阅读全文