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]

我收到错误“列表索引超出范围”。

4

2 回答 2

3

问题在这里:

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)'
于 2013-08-07T09:31:24.160 回答
1

你得到了List index out of range因为b = []然后float(b[0])

于 2013-08-07T09:31:06.473 回答