python - 将 readline() 与 Python 一起使用时,如何从列表中删除换行符或空字符串?
问题描述
我想知道如何从列表中删除换行符(或者如果使用 strip 方法,如何删除剩余的空字符串)。这是我到目前为止的代码:
pixel_start = 0
pixel_width = 25
pixel_height = 6
layer_dimension = pixel_width * pixel_height
pixel_end = layer_dimension
layers = []
def get_layer():
return layer_list[pixel_start:pixel_end]
def increment_layer(pixel_start, pixel_end):
pixel_start += layer_dimension
pixel_end += layer_dimension
return pixel_start, pixel_end
with open('pixel_layers.txt') as layer_file:
layer_list = layer_file.readline().strip()
while len(layers) <= (len(layer_list) / layer_dimension):
layers.append(get_layer())
pixel_start, pixel_end = increment_layer(pixel_start, pixel_end)
layers = layers[:-1]
该文件仅包含一行 1500 个字符和一个换行符。其余代码将该列表分解为一个包含 100 个项目的列表,每个列表包含 150 个字符。然而,它实际上最终是 101 项,因为即使使用 strip 方法,它也会留下一个空字符串作为列表中的第 101 项。
我怎样才能避免这种情况?我不希望最终列表中出现换行符或空字符串。现在我有最后一行来删除它,但这很丑陋,而且根本不是正确的方式。
谢谢!
解决方案
我假设您想从列表“层”中删除额外的最后一个空元素。如果您从 while 循环中删除 '=' 符号,则可以解决此问题。
while len(layers) < (len(layer_list) / layer_dimension):
layers.append(get_layer())
pixel_start, pixel_end = increment_layer(pixel_start, pixel_end)
print(layers)
这是因为,当您运行 while 循环时,它会在计数器 = 10 时未找到任何字符时将一个空字符串附加到列表中。
推荐阅读
- sql - 读取 oracle 表中的 BLOB 列
- git - 将存储库添加为另一个存储库的分支及其所有历史记录
- maven - 获取 Maven 原型列表时出错
- css - 当宽度是容器的四分之一时,为什么 flex child 会跳到下一行?
- android - Xamarin.Plugin.FilePicker - content:/com.android.providers.downloads.documents 问题
- mysql - 在 Hibernate/JPA Generated UPDATE Query 的 Where 子句中包含附加列
- mysql - Linux Bash to mysql:选择或删除具有外部值的记录
- python - 如何返回字符串的前半部分?
- netsuite - 如何使用 Suitescript 2.0 获取 Netsuite 中已删除记录的 ID?
- c# - 如何解决使用代码 9009 退出的控制台应用程序