python百万浮点数排序1秒内写入txt文件代码
时间: 2024-09-16 09:01:51 浏览: 15
在Python中,如果你需要对百万级别的浮点数进行排序并快速写入文本文件,可以考虑使用内置的`sorted()`函数结合`with open()`语句来实现,这通常比直接遍历数组更快。以下是一个简单的示例:
```python
import random
import time
# 生成一百万随机浮点数
float_list = [random.random() for _ in range(1000000)]
# 开始计时
start_time = time.time()
# 对列表排序
sorted_list = sorted(float_list)
# 打开文件,使用'w'模式覆盖原有内容
with open('output.txt', 'w') as f:
# 写入排序后的数据,每行一个元素
for num in sorted_list:
f.write(f"{num}\n")
# 计算和打印耗时
end_time = time.time()
execution_time = end_time - start_time
print(f"排序并写入文件完成,耗时: {execution_time:.2f}秒")
相关问题
python读取txt文件,根据第一列数据的大小对txt文件重新排序
好的,可以使用以下代码实现:
```python
with open('file.txt', 'r') as f:
lines = f.readlines()
data = []
for line in lines:
data.append(line.strip().split())
# 根据第一列数据的大小排序
sorted_data = sorted(data, key=lambda x: float(x[0]))
# 将排序后的数据写回文件
with open('sorted_file.txt', 'w') as f:
for line in sorted_data:
f.write('\t'.join(line) + '\n')
```
这段代码首先使用 `with open()` 语句打开文件并读取所有行,然后使用 `split()` 方法将每行数据按照制表符分割成列表,并添加到列表 `data` 中。
接着,使用 `sorted()` 函数对 `data` 列表进行排序,排序的关键字为列表中的第一个元素,即第一列数据,使用 `float()` 函数将字符串转换为浮点数进行比较。
最后,将排序后的数据写回到文件中,使用 `join()` 方法将列表转换为制表符分割的字符串,并在每行末尾添加换行符,写入到新文件 `sorted_file.txt` 中。
读入浮点数并且按从小到大排序,并输出到文本文件中
以下是一个示例代码,用于读取一系列浮点数并按从小到大排序,然后将排序后的结果输出到文本文件中:
```python
# 读取浮点数列表
numbers = []
while True:
try:
number = float(input("请输入一个浮点数(输入任意非数字字符结束输入):"))
numbers.append(number)
except ValueError:
break
# 按从小到大排序
numbers.sort()
# 将排序后的结果输出到文本文件
output_file = open("sorted_numbers.txt", "w")
for number in numbers:
output_file.write(str(number) + "\n")
output_file.close()
print("排序后的结果已经写入 sorted_numbers.txt 文件中。")
```
这段代码首先创建一个空列表 `numbers`,然后使用 `input` 函数循环读取浮点数输入,直到遇到非数字字符为止。每个有效的输入都会被转换为浮点数并添加到 `numbers` 列表中。
接下来,使用 `sort` 方法对 `numbers` 列表进行排序,将其按从小到大的顺序重新排列。
最后,代码创建一个名为 `sorted_numbers.txt` 的文本文件,并将排序后的结果逐行写入文件中。每个浮点数都会通过 `str` 函数转换为字符串形式,并在末尾添加换行符。最后,关闭文件。
请注意,在运行代码之前,需要确保你有写入文件的权限,并且在运行代码的目录下创建了一个名为 `sorted_numbers.txt` 的文件。