Python 2.7:IndexError:列表索引超出范围

时间:2017-03-11 13:10:11

标签: python-2.7 csv int bubble-sort

我正在尝试打开一个csv文件并将值从字符串转换为整数,以便我可以对列表进行排序。我收到的结果是:

" [[],[' 190'],[' 200'],[' 250'],[' 350& #39;],[' 90']]"。

这是我的原始代码。

import csv

def bubbleSort(scores):
    for length in range(len(scores)-1,0,-1):
        for i in range(length):
            if scores[i]>scores[i+1]:
                temp = scores[i]
                scores[i] = scores[i+1]
                scores[i+1] = temp


with open ("rec_Scores.csv", "rb") as csvfile:
    r = csv.reader(csvfile)
    scores = list(r)


bubbleSort(scores)
print(scores)

我尝试添加一行:

scores_int = [int(score[0]) for score in scores]

现在我收到错误" IndexError:列表索引超出范围"

以下是我正在使用的代码的当前版本:

import csv

def bubbleSort(scores):
    for length in range(len(scores)-1,0,-1):
        for i in range(length):
            if scores[i]>scores[i+1]:
                temp = scores[i]
                scores[i] = scores[i+1]
                scores[i+1] = temp


with open ("rec_Scores.csv", "rb") as csvfile:
    r = csv.reader(csvfile)
    scores = list(r)
    scores_int = [int(score[0]) for score in scores]


bubbleSort(scores_int)
print(scores_int)

如果有人能帮我解决当前的问题,我将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

如果csv文件逐行包含数字,则此代码正在运行(python 2.7):

public function configureDatagridFilters(DatagridMapper $datagridMapper)
{
    $datagridMapper->add('parent', 'doctrine_phpcr_callback', array('callback' =>
        function ($proxyQuery, $alias, $field, $data) {
            if (!$data || !is_array($data) || !array_key_exists('value', $data) || !$data['value']) {
                return;
            }

            $queryBuilder = $proxyQuery->getQueryBuilder();

            $queryBuilder->from($alias)
                ->joinInner()
                ->left()->document(Profile::class, $alias)->end()
                ->right()->document(Department::class, 'd')->end()
                ->condition()->child($alias, 'd')->end();
            $queryBuilder->andWhere()->same($data['value']->getId(), 'd')->end();

            return true;
        }
    ), 'phpcr_document', array('class' => Department::class));

    parent::configureDatagridFilters($datagridMapper);
}