我们说我有一个列表' mylist'。例如,我就这样准备了它:
mylist = ['AB', 'CD', 'EF']
我需要打印出' mylist'的每个元素。在一条新线上。 但是,我不允许使用循环(就像在mylist中的i一样......')我不能说:
print(*mylist, sep = "\n")
虽然最后一个命令完全给出了我需要的输出。
不,我必须以某种方式创建/准备“mylist'以这种方式,根据以下命令实现所需的打印输出:
print(mylist)
甚至可能吗? 请注意,它不是一个重复的帖子 - 它更多的是关于如何格式化列表开头,而不是打印本身。
答案 0 :(得分:2)
非常简单:
print ("\n".join(mylist))
方法str.join
使用字符串加入iterable。
答案 1 :(得分:1)
标准list
类型具有许多内置行为,包括列表周围带括号的表示以及项目(repr
)之间的逗号。根据您指定的语句(print(mylist)
),和使用标准list
类型,无法获得所需的行为。
您可以定义MyList
方法生成所需格式的课程__str__()
:
class MyList(list):
def __str__(self):
return "\n".join(self)
mylist = MyList(['AB', 'CD', 'EF'])
print(mylist)
或者您可以重新定义print()
:
def print(*args, print=print, **kwargs):
if type(args[0]) is list and len(args) == 1:
args = ["\n".join(args[0])]
print(*args, **kwargs)
无论哪种方式都只是将代码隐藏在其他地方,以便坚持一些关于你可以写的内容的任意规则。如果你打算这样做,在课堂上可能是更容易接受它的地方。
答案 2 :(得分:-2)
您可以在新行上打印分隔的每个元素,例如:
print(mylist[0]), print(mylist[1])
答案 3 :(得分:-7)
我找到了解决方案。
'mylist'不应该是一个列表,应该像这样创建一个字符串 - 然后根据需要打印:
mylist = 'AB\nCD\nEF'
print(mylist)