目录
一、选择:
1.列表的复制编辑
2.函数
二、填空
一、选择:
1.列表的复制
在Python中,列表是可变的数据类型。当将一个列表赋值给另一个变量时,实际上是将这个变量的引用指向原始列表。(指针)因此,当修改原始列表时,引用该列表的所有变量都会看到这个变化。
s1 = [4, 5, 6]
s2 = s1
s1[1] = 0
print(s2)
执行这段代码后,s2
的值将是[4, 0, 6]
,因为s2
和s1
都指向同一个列表。修改s1
中的元素也会影响到s2
。
要想让print(s2)
的结果是[4, 5, 6]
,需要确保s2
引用的是一个与s1
不同的列表。这可以通过复制s1
的值到一个新的列表来实现,例如使用切片操作或者copy
方法:
s1 = [4, 5, 6]
s2 = s1[:] # 使用切片复制s1的值到s2
s1[1] = 0
print(s2) # 这将输出 [4, 5, 6]
或者:
s1 = [4, 5, 6]
s2 = s1.copy() # 使用copy方法复制s1的值到s2
s1[1] = 0
print(s2) # 这将输出 [4, 5, 6]
在这两种情况下,s2
都会是一个新的列表,它包含了s1
的值,但是与s1
是独立的,因此修改s1
不会影响到s2
。
2.函数
def f(n):
s=0
for i in range(1,n+1):
if i%2==0:
s=s+i
print(f(10))
虽然f(10)运行后s=30,我们容易主观的认为f(10)会返回30,但该函数没有return语句,意味着它没有输出,故会返回None
若想该函数返回30,需在循环结束位置补全return语句
def f(n):
s=0
for i in range(1,n+1):
if i%2==0:
s=s+i
return s
print(f(10))
二、填空
正确答案:global
正确答案:ls1=lst.copy
正确答案:import math
正确答案:lst=[[item[0], item[1]] for item in stu]