Python max()列表中的最大元素与CSV fi中的最大元素不同

2024-04-18 00:20:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我的素数列表文件是CSV格式的,分隔符是逗号,素数的数据高达50000。该文件还具有随机换行符。你知道吗

问题:49999是文件中最大的数字,但是primes_list中最大的元素是9973!你知道吗

[稍后,Primes列表中的每个素数都将转换为long类型,并使用for循环中的值。for prime in Primes]

因此,我的问题是,我用下面最小的python代码做错了什么?你知道吗

Python版本是2.76,运行在Linux Mint 17上。你知道吗

修改后的代码

import csv

def factorise()
    primes=[]
    with open(primefile,'r') as csvfile:
        primes_data=csvfile.read().replace('\n','').split(',')
        primes=primes_data
        print('Number of elements is: '+str(len(primes)))
        print('First element is: '+primes[0])
        print('Last element is: '+primes[-1])
        csvfile.close()
        print('Largest element is: '+max(primes))

输出示例

Number of elements is: 5134
First element is: 2
last element is: 49999
Largest element is: 9973

Tags: 文件ofcsvfile代码number列表fordata
1条回答
网友
1楼 · 发布于 2024-04-18 00:20:31

那么9973有什么特别之处呢?你看过文件了吗?有新的一行吗?你知道吗

无论如何,您可能想要的是csv.reader(),而不是标准IO.read读取()

import csv

def factorise():
    first_element = int()
    total_list = list()

    with open("primefile.csv", "r") as file:
        primes = csv.reader(file)
        for line in primes:
            if not first_element:
                print('First element is: %s' % line[0])
                first_element = line[0]
            total_list.extend(line)
        print('Number of elements is: %s' % len(total_list))
        print('Last element is: %s' % line[-1])

if __name__ == "__main__":
    factorise()

我没有你的来源,所以我不能测试这个,但它似乎应该工作。你知道吗

编辑:修正了几个愚蠢的错误

相关问题 更多 >

    热门问题