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

Posted

技术标签:

【中文标题】在单行代码中使用 *(扩展运算符)打印列表列表【英文标题】:Print list of lists using *(expansion operator) in single line of code 【发布时间】:2020-05-07 02:45:21 【问题描述】:

我正在尝试使用单行代码打印列表 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循环”,而不是使用*运算符或任何其他技术在一行代码中完成此操作

【问题讨论】:

因为你已经嵌套了list 我认为for loop 是不可避免的 这能回答你的问题吗? How to make a flat list out of list of lists? 【参考方案1】:

你可以像这样在一行中做到这一点:

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

【讨论】:

正要发布这样的内容作为我答案的更新。 +1【参考方案2】:

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

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

输出:

A 23
B 45
C 88

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

【讨论】:

【参考方案3】:

另一种方式:

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

【讨论】:

以上是关于在单行代码中使用 *(扩展运算符)打印列表列表的主要内容,如果未能解决你的问题,请参考以下文章

连接或扩展字典列表覆盖到最后一个列表

扩展列表返回无 [重复]

如何从数组中查找具有特定扩展名的文件列表

自定义 chrome 扩展不启动设备列表

Jenkins - 动态选择参数 - 从列表中删除文件扩展名

Chrome 扩展程序列表框问题