python 3中的'print(x)`和`print(* x)`有什么区别?

时间:2017-06-11 19:04:25

标签: python printing

我无法记住我在哪里看到这一点,但我不明白这里发生了什么。 print(*x)有什么用? 以下代码:

x = [(1, 2), (3, 4)]
print(x)
print(*x)

y = [1, 2, 3, 4]
print(y)
print(*y)

z = 1, 2, 3, 4
print(z)
print(*z)

提供以下输出:

[(1, 2), (3, 4)]
(1, 2) (3, 4)
[1, 2, 3, 4]
1 2 3 4
(1, 2, 3, 4)
1 2 3 4

我看到发生了什么,但我不知道发生了什么。在以前的情况下,它只输出它们没有任何括号或逗号。 但是当我在字典中使用它时:

a = {1: "a", 2: [1, 2, 3], 3: (4, 5, 6)}
print(a)
print(*a)

我只用第二张照片取回钥匙:

{1: 'a', 2: [1, 2, 3], 3: (4, 5, 6)}
1 2 3

3 个答案:

答案 0 :(得分:1)

已经描述here *将"从列表或元组中解析参数"。当你print(*var)时,就像打印多个变量一样:

x = [(1, 2), (3, 4)]
print(*x)
# (1, 2) (3, 4)
# Same as follow
for v in x:
    print(v, end=' ')

当您解压缩dict时,它会返回dict的密钥。这就是为什么你只能通过print(*dict)取回钥匙的原因。应用相同的for循环,您与print(*a)相同:

a = {1: "a", 2: [1, 2, 3], 3: (4, 5, 6)}
for v in a:
    print(v, end=' ')

答案 1 :(得分:1)

在python数据类型中,如list,dictionary ..  *将从中解压缩值...

为了更好地理解,
    a = [“某人”,23]     “嗨,我的名字{}我的年龄是{}”。格式(a [0],a [1])

你可以达到同样的目的,      “我的名字{}我的年龄是{}”。格式(* a)

答案 2 :(得分:0)

* x是值解包的简写。

stage.yourdomain.com

阅读this了解有关解包的更多信息