我想使用Python以排序顺序逐行打印以下数字。
119,671,207,2484,6,741,2138,806,1851,2509,1264,701,2802,319,1603,98,347,525,1521,269,1681,1885,1731,2828 ,2543,2011,720,2359,2248,22,1637
我的代码看起来像
>>> fo = open("cr.txt", "r")
>>> fo1 = fo.readlines()
>>> fo2 = fo1.split(',')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'split'
当我尝试使用split
分割数字时,它会将错误显示为list object has no attribute split
。
答案 0 :(得分:3)
fo.readlines()
返回一个行列表。如果您的文本文件只包含一行,那么您可以使用它来选择文件中的第一行。
fo = open("cr.txt", "r")
fo1 = fo.readlines()[0]
fo2 = fo1.split(',')
如果你的文件包含多行,那么使用它,在用逗号分割所有值之前,用','连接所有行。
fo = open("cr.txt", "r")
fo1 = ','.join(fo.readlines())
fo2 = fo1.split(',')
答案 1 :(得分:1)
由于问题是以逗号分隔的逐行和排序方式打印数字,以下代码是一个解决方案:
f = open("cr.txt", "r")
l = f.read().split(sep = ",")
list1 = sorted(l, key=lambda e: int(e))
for i in list1:
print(i)
输出是:
6
22
98
119
207
269
319
347
525
671
701
720
......
代码以排序方式逐行打印数字,不带逗号。我在这里使用lambda
表达式来进行排序,这也可以通过sort()
函数实现。