在单行代码中使用 *(扩展运算符)打印列表列表
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
注意我们需要使用str
将l
中的元组中的第二个值转换为join
的字符串。
你可以像这样在一行中完成:
print('\n'.join('{} {}'.format(*tup) for tup in lst))
另一种方式:
print(*map(lambda x: " ".join(x), lst), sep='\n', flush=True)
我正在尝试使用一行代码打印列表 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
注意我们需要使用str
将l
中的元组中的第二个值转换为join
的字符串。
你可以像这样在一行中完成:
print('\n'.join('{} {}'.format(*tup) for tup in lst))
另一种方式:
print(*map(lambda x: " ".join(x), lst), sep='\n', flush=True)