【发布时间】:2019-04-17 15:06:44
【问题描述】:
也许看起来很笨,但我知道如果我想声明一个列表,我可以这样做:
list1 = list("Hello")
但是为什么我需要两组括号来声明数字:
list2 = list((2,3,4,5))
【问题讨论】:
-
您正在从元组中创建列表。你可以使用:
[2,3,4,5] -
因为“Hello”已经是一个字符列表。 2345 是一个整数。
-
使用方括号需要0个括号:
list3 = [1,2,3,4] -
t= 2,3,4,5; list(t)虽然有效,但我知道这对某些人来说可能是反直觉的——允许仅基于逗号的元组的语义,但在某些情况下会导致歧义 -
语义不仅仅允许逗号;逗号是 define 元组的内容。括号只是为了消除逗号的不同用法的歧义。
f(2,3,4)是一个带有三个参数的函数调用,而f((2,3), 4)是一个带有一个元组参数和第二个整数参数的调用。t = 2,3,4,5和t = (2,3,4,5)是等价的,因为没有混淆第一个赋值的 RHS 上的逗号可能意味着什么。