Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.3中的排序_Python_Sorting_File Io_Casting_Int - Fatal编程技术网

Python 3.3中的排序

Python 3.3中的排序,python,sorting,file-io,casting,int,Python,Sorting,File Io,Casting,Int,我试图对从文件中引入的100个两位数整数列表进行排序,由于某种原因,sorted()函数似乎没有做任何更改。我已经用sorted函数搜索过类似的问题,其中大多数问题都是因为我所包含的int没有类型转换。请让我知道我的逻辑哪里出了问题 #!/usr/bin/python import copy data = [] with open('afile.txt') as file: for line in file: line = line.split() # to deal with bla

我试图对从文件中引入的100个两位数整数列表进行排序,由于某种原因,sorted()函数似乎没有做任何更改。我已经用sorted函数搜索过类似的问题,其中大多数问题都是因为我所包含的int没有类型转换。请让我知道我的逻辑哪里出了问题

#!/usr/bin/python
import copy

data = []
with open('afile.txt') as file:
for line in file:
    line = line.split() # to deal with blank 
    if line:            # lines (ie skip them)
        line = [int(i) for i in line]
        data.append(copy.copy(line))
newdata = sorted(data)
print(newdata)
编辑:

输入仅仅是一个一到两位数以及它们之间的空格。
例17 8 97 1 26

数据最终成为一个列表列表,你确定这就是你想要的吗

也许取代

data.append(copy.copy(line))


是否有多行,每行上都有多个数字?

您的输入格式如何?你能举个例子(比如5或6个整数)来回答这个问题吗?
data
是一个列表列表。。您希望排序对它做什么?在这个代码中,
data
是一个列表列表。更改
数据。将
附加到
数据。扩展
并查看是否获得更好的结果。谢谢大家,我没有意识到我创建了一个列表列表。旁注:您不需要使用
复制
模块来复制列表。在python3中,list有一个返回列表副本的
copy()
方法。或者,只需执行
list(其他列表)
即可创建副本。一种更模糊(更短)的方法是使用切片:
一些_list[:]
将创建一个副本(
[:]
意味着从开始到结束进行切片,因为
开始
停止
参数被省略)。真棒,非常感谢+当我能代表的时候(直到我自己挣到一些钱之前,现在还不能)。@Demosthanes-几分钟后,你就可以接受答案,这也会给你一些代表。另外,如果每行一个数字(如gnibbler的结束问题中所述),你可以使用
data.append(int(line.strip())
-在对每个字符串调用
int
之前,通常使用
split
将类似
“5 7 10”
的内容转换为一个列表
[“5”、“7”、“10”]
。所以这取决于你的实际投入。
data.extend(line)