对不起,如果这个问题很愚蠢......我正在寻找允许分割线并选择最佳值和相应来源的python技巧,但实际条目数未知,它可以从1到100。
x = "32.1 (PDBbind), 50.1 (BDB), 83.0 (BMOAD_4832)"
for i in x.split(","):
b = []
if float(i.split()[0]) < float(b[0]):
b = i.split()[0]
我收到错误“列表索引超出范围”。
对不起,如果这个问题很愚蠢......我正在寻找允许分割线并选择最佳值和相应来源的python技巧,但实际条目数未知,它可以从1到100。
x = "32.1 (PDBbind), 50.1 (BDB), 83.0 (BMOAD_4832)"
for i in x.split(","):
b = []
if float(i.split()[0]) < float(b[0]):
b = i.split()[0]
我收到错误“列表索引超出范围”。
问题在这里:
b = []
if float(i.split()[0]) < float(b[0]):
#^ b is an empty list, b[0] will raise that error
如果我正确理解您的问题,那么简明的解决方案是:
>>> max(x.split(","), key=lambda x: float(x.split()[0]))
' 83.0 (BMOAD_4832)'
你得到了List index out of range
因为b = []
然后float(b[0])
。