在Python中打印一个二维列表,不包括逗号

16 浏览
0 Comments

在Python中打印一个二维列表,不包括逗号

我想在Python中打印一个二维列表,但不要打印逗号。

不要打印:

[[0,0,0,0,0,1,1,1,1,1,1],[0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,0,0,1,1,0,1],[1,1,1] ... ]

我想要打印:

[[0 0 0 0 0 1 1 1 1 1 1 1] [0 0 0 0 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1] [1 1 1] ... ]

请问我该如何做到?谢谢!

0
0 Comments

问题:在Python中打印一个二维列表时,如何去掉逗号的方法是什么?

原因:在Python中,当我们打印一个列表时,默认情况下会显示逗号分隔的元素。但是有时候我们希望打印一个二维列表时去掉逗号,只显示元素值,这样可以更清晰地展示数据。

解决方法:可以使用递归的方式来打印二维列表,通过判断元素类型来决定是否添加逗号。下面是一个通用、安全且递归的解决方法:

def my_repr(o):
    if isinstance(o, list):
        return '[' + ' '.join(my_repr(x) for x in o) + ']'
    else:
        return repr(o)

上述代码中,`my_repr`函数用于打印列表。如果列表的元素仍然是一个列表,那么会递归调用`my_repr`函数进行处理,直到所有的元素都被打印出来。使用`' '.join()`将所有元素连接起来,并在最外层添加方括号,从而得到一个二维列表的字符串表示。

需要注意的是,这种解决方法不能处理元组、迭代器或者不继承自`list`的类似列表的对象。如果需要处理这些情况,可以使用更通用的方法。

通过上述解决方法,我们可以在打印二维列表时去掉逗号,只显示元素值,使得数据更加清晰易读。

0
0 Comments

问题:如何在Python中打印一个二维列表而不显示逗号?

解决方法:

该问题的解决方法是定义一个函数str_seq,通过指定的分隔符、左括号和右括号将一个序列转换为字符串。该函数先判断输入的序列是否为字符串,如果是则直接返回;如果是可迭代对象,则递归调用str_seq函数对其中的每个元素进行处理,并使用指定的分隔符将它们连接起来;如果是其他类型的对象,则将其转换为字符串。最后,函数返回加上左右括号的字符串。

在所给的代码中,还出现了一个判断isinstance(seq, basestr)。这是因为在Python 3中,basestring类型已经被移除,因此需要使用isinstance(seq, str)来判断一个对象是否为字符串。

在讨论中,还提到了使用isinstance(seq, collections.abc.Iterable)来代替try/except的方法。由于collections.abc是Python 3中的模块,所以在Python 2中可以使用collections.Iterable来替代。这两个方法的效果是一样的,但是使用isinstance(seq, collections.abc.Iterable)会更快。

此外,还讨论了isinstance(seq, Iterable)的工作原理。该判断语句会在任何具有__iter__方法的对象上返回True。这个判断方法在Python 2和Python 3中都是适用的。

最后,还提到了一种特殊情况,即当一个类实现了.__getitem__()方法时,即使没有实现.__iter__()方法,它也被认为是可迭代的。但是根据讨论的结果,大部分人更倾向于使用Iterable的判断方法,因为如果想让一个类是可迭代的,就应该实现.__iter__()方法。

通过定义一个函数str_seq,将一个序列转换为字符串并打印出来,可以实现在Python中打印一个二维列表而不显示逗号。在判断一个对象是否为字符串和可迭代对象时,可以使用isinstance函数来进行判断。在Python 3中,使用isinstance(seq, str)来判断一个对象是否为字符串,而在Python 2中,可以使用isinstance(seq, basestr)来判断。另外,还可以使用isinstance(seq, collections.abc.Iterable)或isinstance(seq, collections.Iterable)来判断一个对象是否为可迭代对象。最后,还讨论了在某些特殊情况下的判断方法。

0
0 Comments

问题:在Python中打印一个二维列表时,如何避免逗号的出现?

原因:在Python中,使用内置函数repr将列表转换为字符串后,打印出来的字符串会保留原列表中的逗号。这可能会导致在打印二维列表时出现逗号。

解决方法:可以通过使用replace函数将逗号替换为空格来解决这个问题。下面是一个示例函数repr_with_spaces,它将逗号替换为空格后返回转换后的字符串。

def repr_with_spaces(lst):
    return repr(lst).replace(",", " ")

需要注意的是,这种方法仅适用于包含整数的列表,对于其他类型的列表可能无效。

然而,在问题的编辑中,mutzmatron指出,即使列表不是字符串类型,上述解决方法仍然有效。这意味着上述解决方法可以适用于更广泛的数据类型。

然而,需要注意的是,如果数据中包含逗号,则上述解决方法也会出现问题,因为它会将所有逗号替换为空格。

要在Python中打印一个二维列表时避免逗号的出现,可以使用上述解决方法。但是需要注意数据中是否包含逗号,以免引起问题。

0