python - 尝试使用 sort() 对列表进行排序
问题描述
在将另一个文件的内容附加到列表(水果)之后,并且在将其写入 txt 文件“fruit_salad.txt”之前,我正在尝试对列表(水果)进行排序。
我遇到的问题是,一旦我写了“fruit.sort()”,它就无法识别输出。
通过对导致这种情况的列表进行排序,我在做什么?
先感谢您。
- -代码 - -
try:
f = open("fruit.txt", mode='r', encoding='utf-8')
fruit = f.readlines()
print(fruit, "\n")
f1 = open("more_fruit.txt", mode="r", encoding='utf-8')
fruit.append(f1.readlines())
print(fruit)
# fruit.sort() # WITHOUT THIS LINE IT WORKS FINE
output = open("fruit_salad.txt", mode='w', encoding='utf-8')
for line in fruit:
output.writelines(line)
except (FileNotFoundError, IOError):
print("File Not Found!!")
finally:
f.close()
f1.close()
output.close()
- 输出 -
['pear\n', 'apple\n', 'orange \n', 'mandarin\n', 'watermelon\n',
'pomegranate\n', 'lemon\n', 'pineapple\n']
['pear\n', 'apple\n', 'orange \n', 'mandarin\n', 'watermelon\n', 'pomegranate\n', 'lemon\n', 'pineapple\n', ['banana\n', 'raspberry\n', 'blueberry\n', 'lime\n', 'blackberry\n', 'cherry\n', 'grape']]
程序“python.exe”以代码 0 (0x0) 退出。
错误输出
在处理上述异常的过程中,又出现了一个异常:
Traceback (most recent call last):
File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\ptvsd_launcher.py", line 111, in <module>
vspd.debug(filename, port_num, debug_id, debug_options, run_as)
File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\debugger.py", line 36, in debug
run(address, filename, *args, **kwargs)
File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\_main.py", line 47, in run_file
run(argv, addr, **kwargs)
File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\_main.py", line 98, in _run
_pydevd.main()
File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\pydevd\pydevd.py", line 1628, in main
globals = debugger.run(setup['file'], None, None, is_module)
File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\pydevd\pydevd.py", line 1035, in run
pydev_imports.execfile(file, globals, locals) # execute the script
File "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\Microsoft\Python\Core\Packages\ptvsd\pydevd\_pydev_imps\_pydev_execfile.py", line 25, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:\Users\micha\source\repos\PythonFileManagement\PythonFileManagement\PythonFileManagement.py", line 24, in <module>
output.close()
NameError: name 'output' is not defined
解决方案
您将列表附加到列表的末尾,如您所见,您得到:
[elem11, elem12, ..., elem1n, [elem21, elem22, ..., elem2m]]
(列表中的列表)
您需要使用extend
而不是append
添加所有元素f1.readlines()
fruit.extend(f1.readlines())
推荐阅读
- javascript - 在带有 Node.js 和 Browserify 的浏览器中使用 NPM 模块 - 运行 npm run build 时出错
- rest - 如何通过 Rest-API 在 Airwatch/Workspace ONE 中设置设备名称(友好名称)
- flutter - TextField 输入翻倍
- node.js - 在 axios get request Network Error 中生成错误.. 可能的未处理的 Promise Rejection (id: 0):
- reference - 如何调整 Latex 参考文献中作者姓名的顺序(Journal of Finance 风格)
- ruby-on-rails - 带条件的 Rails 验证
- mysql - BTREE 或 HASH 作为枚举索引的类型是否更小?
- javascript - 使用 mermaid-js 以角度处理异步数据
- java - 如何删除 Maven 错误聚合器项目需要“pom”作为包装
- cluster-computing - 对一个 SLURM 作业使用不同的 Intel CPU 类型时出现本地长度错误