在单行代码中使用 *(扩展运算符)打印列表列表

Print list of lists using *(expansion operator) in single line of code

我正在尝试使用一行代码打印列表 lst

lst = [("A",23),("B",45),("C",88)]

print(*lst, sep="\n")

输出是这样的:

('A', 23)
('B', 45)
('C', 88)

我期待的是

A 23
B 45
C 88

不过可以通过下面的代码实现

for i in range(len(lst)):
    print(*lst[i], sep=" ")

但我不想使用"for loop",而是使用*运算符或任何其他技术在单行代码中完成

您可以在一行代码中实现这一点,但它确实涉及列表理解(您可以考虑 for 循环):

print(*[' '.join([l[0], str(l[1])]) for l in lst], sep="\n")

输出:

A 23
B 45
C 88

注意我们需要使用strl中的元组中的第二个值转换为join的字符串。

你可以像这样在一行中完成:

print('\n'.join('{} {}'.format(*tup) for tup in lst))

另一种方式:

print(*map(lambda x: " ".join(x), lst), sep='\n', flush=True)