【问题标题】:How do I remove Spaces from nested list created with for loop?如何从使用 for 循环创建的嵌套列表中删除空格?
【发布时间】:2021-06-11 03:07:40
【问题描述】:

我使用 for 循环创建了一个嵌套列表。我使用了以下代码: '''

a=[]
for i in range(1,5+1):
        a=a+[[1]*i]
print(a)

'''

输出是:

如何从列表中删除每个 1 之前的这些空格?我需要修改我的列表!

【问题讨论】:

    标签: python arrays python-3.x list python-2.7


    【解决方案1】:

    空格是列表对象默认__repr__(可视化表示)的一部分。 要删除空格,您必须自己进行输出处理。

    将列表转换为字符串。从中删除空格。打印:

    print( str(a).replace(' ', '') )
    

    输出:

    '[[1],[1,1],[1,1,1],[1,1,1,1],[1,1,1,1,1]]'
    

    “但是我怎样才能在我的列表中做出改变呢?”

    你不能。正如我所说,这些空格来自__repr__,当您打印列表时会隐式调用它。您的列表中没有空格,仅在打印表示中。你不能从你的内存列表中删除空格,就像你不能删除逗号或括号一样。

    【讨论】:

    • 我了解您的解决方案。但是我怎样才能在我的列表中进行更改呢?
    • 你的列表没有空格,只有它的字符串表示!列表的每个元素都是数字1,没有任何空格。
    【解决方案2】:

    你得到的输出是python的默认输出。如 Prune 所述,为了更改它,您可以执行以下操作:

    a = []
    for i in range (1, 6):
        a += str([1]*i).replace(' ', '')
    print(a)
    
    #or
    
    a = []
    for i in range(1, 6):
        a += [[1]*i]
    a = str(a).replace(' ', '')
    print(a)
    

    【讨论】:

      【解决方案3】:

      您是否尝试过: a=[] for i in range(1,5+1): a=a+[[1]*i] print(a, end='')?

      【讨论】:

      • 我了解您的解决方案。但是我怎样才能在我的列表中进行更改呢?
      • 嗯...也许,通过使用 replace() 函数?
      • 另外,如果我没记错的话,lower() 函数也会删除空格
      猜你喜欢
      • 1970-01-01
      • 2021-01-26
      • 2013-12-14
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多