gpt4 book ai didi

python - 第二个代码不应该像第一个一样输出

转载 作者:行者123 更新时间:2023-12-01 23:20:26 26 4
gpt4 key购买 nike

为什么第二个代码给出的输出与第一个不同?

  1. 使用 for 循环:
my_list = [1, 2, 3, 4, 2, 6, 2, 2, 7, 3, 8, 2]
uniques = []
for item in my_list:
if item not in uniques:
uniques.append(item)
print(uniques)

输出:

[1, 2, 3, 4, 6, 7, 8]
  1. 使用列表理解:

my_list = [1, 2, 3, 4, 2, 6, 2, 2, 7, 3, 8, 2]
uniques = []
uniques = [item for item in my_list if item not in uniques]
print(uniques)

输出:

[1, 2, 3, 4, 2, 6, 2, 2, 7, 3, 8, 2]

最佳答案

表达式 [item for item in my_list if item not in uniques] 根据理解一次计算一个新列表。然后它将结果分配给名称 uniques。在理解运行期间,uniques 是一个空列表,因此测试 if item not in uniques 总是返回 True

在第一个版本中,uniques 引用一个正在积极更新的列表,因此它能够有意义地检查列表中已有的项目。

顺便说一句,这是一种非常低效的重复项检查方法,因为每次您编写 if item not in uniques: 时,都会在线性时间内检查整个列表。更好的替代方法是使用 set,它使用哈希表进行固定时间查找。

关于python - 第二个代码不应该像第一个一样输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68169258/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com