Python 问题,我正在准备 PCEP 考试 [复制]

Python Problem i am preparing myself for PCEP Exam [duplicate]

提问人:Marko Kostic 提问时间:9/19/2023 最后编辑:JRigglesMarko Kostic 更新时间:9/19/2023 访问量:69

问:

my_list = [x * x for x in range(5)]

def fun(lst):
    del lst[lst[2]]
    return lst

print(fun(my_list))

答案是为什么[0,1,4,9]

据我了解: 第一部分:

0*0 
1*1
2*2
3*3
4*4

所以看起来就像当时发生的事情[0,1,4,9,16]

python 列表 列表推导

评论

1赞 Andrej Kesely 9/19/2023
lst[2]是 ,所以是 doing,最后一个元素被删除。4del lst[lst[2]]del lst[4]
1赞 Paul H 9/19/2023
注释掉行并在其位置打印,然后打印dellst[2]lstlist[[2]]

答:

0赞 Deotyma 9/19/2023 #1

定义列表推导式:

my_list = [x * x for x in range(5)]

这将生成一个列表,其中包含从 0 到 4 的数字的平方。 因此,my_list将是:

[0, 1, 4, 9, 16]

你有一个函数 fun(lst):

def fun(lst):
    del lst[lst[2]]
    return lst

此函数将列表作为参数,并从中删除元素。

要了解要删除的元素,请执行以下操作:

  • 首先,它访问列表的第三个元素(索引 2):lst[2]。
  • 对于my_list列表,第三个元素(索引 2)是 4。
  • 然后,它使用 del lst[lst[2]] 从列表中删除索引 4 处的元素。 因此,它将从my_list中删除元素 16。

最后,当您调用 fun(my_list) 时,它会将my_list修改为:

[0, 1, 4, 9]

因此,代码创建一个从 0 到 4 的数字平方列表,然后使用 fun 函数删除列表的最后一个元素。