如何在同一行中只打印列表的值? 我的代码是:
t = int(input())
for case_no in range(1, t+1):
n = int(input())
li = list()
for i in range(1, n+1):
if n % i == 0:
li.append(i)
print("Case {}: {}".format(case_no, li, sep=' ', end=''))
我的输入输出示例结果:
2
6
Case 1: [1, 2, 3, 6]
23
Case 2: [1, 23]
我的预期产出:
2
6
Case 1: 1 2 3 6
23
Case 2: 1 23
尝试
join()
将列表转换为字符串-这里您的列表是一个整数列表,并且
join()
将iterable的每个字符串元素连接起来,并用一些字符串隔开(在本例中为“”)。所以,首先需要将每个整数转换为一个字符串。map()
可以做到。map()
接受一个函数,并将其应用于作为第二个参数传递的iterable的每个元素(这里列出li
)。因此,map(str, li)
将创建一个iterable,其中每个元素都是listli
中每个元素的字符串表示所以,你的台词应该是-
你也可以用生成器表达式-
在本例中,您使用的是一个生成器表达式(如果您不知道的话,可以将其看作列表理解)。生成器表达式迭代
li
的每个元素,并返回该元素的字符串化(不知道这是否是单词)版本。你知道吗另外,如果你只是想打印列表,而不是为了其他目的而维护它,那么你可以简化一下-
您可以使用print来完成:
印刷品:
使用splat(*)(或解包参数列表)操作符提供列表中的所有元素作为要打印的参数:
要么从列表中生成一个字符串,要么需要另一个循环来解析列表。可能还有其他的解决办法。你知道吗
可以在print语句后使用逗号,以避免添加新行。你知道吗
制作字符串:
带回路:
相关问题 更多 >
编程相关推荐