jun_269 发表于 2023-3-16 15:43:28

各位大神,请叫一个问题,谢谢

请教各位大神,谁能帮帮我,解释下这段代码的执行顺序,谢谢!

wp231957 发表于 2023-3-16 15:45:35

这不就是去重吗   有啥不理解的
不过去重不用这么麻烦一个set 搞定

wp231957 发表于 2023-3-16 15:46:40

>>> a=
>>> set(a)
{1, 2, 3, 4, 7, 56}
>>>

jun_269 发表于 2023-3-16 15:48:22

谢谢,是去重没错,但是我就是不理解print(b) 和 for语句是同级的,这是咋个执行法{:5_105:}

jun_269 发表于 2023-3-16 15:51:36

wp231957 发表于 2023-3-16 15:46
>>> a=
>>> set(a)
{1, 2, 3, 4, 7, 56}


谢谢您,您这个我知道,但是我只是就是想了解下上面那个语法是怎么执行的。谢谢

isdkz 发表于 2023-3-16 15:51:44

这段代码是去重并且保留原列表中元素出现的顺序。

代码的执行过程如下:

1、定义了一个列表 nums,其中包含多个整数。

2、定义了一个空列表 b,用于存储去重后的结果。

3、开始 for 循环遍历 nums 列表中的每个元素。

4、对于每个元素 i,检查它是否已经在 b 中存在。

5、如果已经存在,则使用 continue 跳过当前循环,进入下一个元素的判断。

6、如果不存在,则使用 b.append(i) 将该元素添加到 b 列表中。

7、循环结束后,使用 print(b) 输出去重后的列表。

因此,最终的输出结果是:,即去重后保留原列表中元素出现的顺序。

jun_269 发表于 2023-3-16 16:13:02

isdkz 发表于 2023-3-16 15:51
这段代码是去重并且保留原列表中元素出现的顺序。

代码的执行过程如下:


太感谢了,理解了。理解了,谢谢您,谢谢

isdkz 发表于 2023-3-16 16:17:08

jun_269 发表于 2023-3-16 16:13
太感谢了,理解了。理解了,谢谢您,谢谢

给个最佳答案呗

歌者文明清理员 发表于 2023-3-16 16:56:52

wp231957 发表于 2023-3-16 15:45
这不就是去重吗   有啥不理解的
不过去重不用这么麻烦一个set 搞定

集合中不支持可哈希对象(可变对象)。
如果要去重的是可哈希对象集合也帮不了你。

附:如何查看对象是否可哈希?
>>> a = 1
>>> hash(a)
(不会报错)
>>> hash()
报错
用 try…except 捕获就可以判断了
def is_muttable(obj):
    try:
      hash(obj)
      return True
    except:
      return False
页: [1]
查看完整版本: 各位大神,请叫一个问题,谢谢