我不能分开工作,我做错了什么?

时间:2012-12-02 23:50:14

标签: python python-3.x split

这是我到目前为止所做的程序的代码。我正在尝试计算NBA球员在课堂上的效率。当我在包含所有统计信息的逗号分隔文件上运行程序时,不是分割每个逗号,而是创建stat文件整行的列表条目。我得到索引超出范围错误或它将每个字符视为索引点而不是单独的字段。我是新手,但它似乎应该为文件中的每一行创建一个列表,该列表由该列表的元素分隔,因此我得到一个列表列表。我希望自己能够理解。

以下是代码:

def get_data_list (file_name):
    data_file = open(file_name, "r")
    data_list = []
    for line_str in data_file:

        # strip end-of-line, split on commas, and append items to list
        line_str.strip()       
        line_str.split(',')

        print(line_str)

        data_list.append(line_str)
        print(data_list)                






file_name1 = input("File name: ")
result_list = get_data_list (file_name1)


print(result_list)

我没有看到如何发布数据文件供您查看并尝试使用,但任何以逗号分隔的数字文件都应该有效。

如果有办法将数据文件或电子邮件发布给您,以便我帮助我,我很乐意这样做。

Boliver

1 个答案:

答案 0 :(得分:3)

字符串是不可变对象,这意味着您无法在适当的位置更改它们。这意味着,对字符串的任何操作都会返回一个新操作。现在看看你的代码:

line_str.strip()            # returns a string      
line_str.split(',')         # returns a list of strings
data_list.append(line_str)  # appends original 'line_str' (i.e. the entire line)

您可以通过以下方式解决此问题:

stripped = line_str.strip()
data = stripped.split(',')
data_list.append(data)

或者连接字符串操作:

data = line_str.strip().split(',')
data_list.append(data)