我真的是python的新手,主要来自R语言的编程。在学习期间,我遇到了这段代码。
xs=[()]
res=[False]*2
if xs:
res[0]= True
if xs[0]:
res[1]=True
print(res)
最初,我认为这是初始化空数组的一种方法。但是,当我运行相同的代码片段将初始化部分替换为空列表时,它给我一个错误。
xs=list()
res=[False]*2
if xs:
res[0]= True
if xs[0]:
res[1]=True
print(res)
有人可以帮我理解这两个代码之间的区别吗?任何帮助表示赞赏。谢谢!
答案 0 :(得分:0)
在第一个
xs=[()] <---------
您的xs看起来像这样
xs[0] = ()
第二个
xs = list()
表示
xs = []
如此
xs[0] # does not xsist
答案 1 :(得分:0)
问题的基础是两个列表定义,请考虑以下代码:
xs1 = [()] # create a list with a single element, which is an empty tuple
xs2 = list() # create an empty list
xs在您的第一个代码块中有一个元素(一个空列表),因此它可以工作。在第二个代码块中,xs真正为空(具有零个元素),因此代码失败,因为xs [0]不存在。