我有两道考试题
t2=("A","B","Hello")
alist=["Barney",["Wilma"]]
print(alist[1].append(t2))
回答:
None
我以为是[“Wilma”,(“A”,”B”,”Hello”)]
以及
文件具有:
James,8,9
Sonia,7,6
Clark,4,5
代码:
endofprogram=False
try:
infile=open("names.txt",”r”)
except IOError:
print("Error reading file")
endofprogram=True
if endofprogram==False:
for line in infile:
line.strip('\n')
alist=line.split(',')
print(alist)
回答
['James','8','9\n']
['Sonia','7','6\n']
['Clark','4','5\n']
为什么“\n”仍然存在? 最后:
def change(aList):
aList=aList.pop()
aList.append(5)
return
def main():
mylist=[1,2,[3]]
change(mylist)
print(mylist)
main()
回答:
[1,2]
为什么这是答案?是不是应该是[1,2,5]
append函数不返回任何内容,因此结果为None。它只会附加到列表中
strip函数只删除末尾的字符;开始。如果您在Windows上工作,实际的行尾很可能是\n\r,最后一个字符。不能被你的脱衣舞命令移除
第三个问题是因为在change函数中,一旦函数更改存在,aList值就会丢失。你应该做:
在Python中,赋值不会改变任何底层变量。而是将名称绑定到一个新值。因此,在行
alIst = aList.pop()
之后,aList指向[3]
,但不再链接到myList对象。在append函数之后,aList指向[3, 5]
,但是只要Change
返回,这个对象就会被垃圾收集list.append
是就地操作,它就地修改列表并返回None
李>.strip()
回调的结果重新赋给变量李>aList
分配给不同的列表,因此.append()
调用不会影响最初传递的列表李>您只需在此处使用赋值语句:
^{} 是一个返回
None
的操作,因为它就地修改列表。必须打印实际列表才能获得预期的输出line.strip("\n")
确实会剥离换行符,但它永远不会保存在任何地方。字符串在python中是不可变的,因此^{line = line.strip("\n")
例1:
例2:
相关问题 更多 >
编程相关推荐