鱼C论坛

 找回密码
 立即注册
查看: 2528|回复: 8

[已解决]各位大神,请叫一个问题,谢谢

[复制链接]
发表于 2023-3-16 15:43:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请教各位大神,谁能帮帮我,解释下这段代码的执行顺序,谢谢!
最佳答案
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) 输出去重后的列表。

因此,最终的输出结果是:[1, 2, 3, 4, 5, 6, 7, 45, 56, 78, 99],即去重后保留原列表中元素出现的顺序。
python.bmp
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-16 15:45:35 | 显示全部楼层
这不就是去重吗   有啥不理解的
不过去重不用这么麻烦  一个set 搞定
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-16 15:46:40 | 显示全部楼层
>>> a=[1,1,1,1,2,2,2,3,4,4,4,4,56,7]
>>> set(a)
{1, 2, 3, 4, 7, 56}
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-16 15:48:22 | 显示全部楼层
谢谢,是去重没错,但是我就是不理解print(b) 和 for语句是同级的,这是咋个执行法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-16 15:51:36 | 显示全部楼层
wp231957 发表于 2023-3-16 15:46
>>> a=[1,1,1,1,2,2,2,3,4,4,4,4,56,7]
>>> set(a)
{1, 2, 3, 4, 7, 56}

谢谢您,您这个我知道,但是我只是就是想了解下上面那个语法是怎么执行的。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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) 输出去重后的列表。

因此,最终的输出结果是:[1, 2, 3, 4, 5, 6, 7, 45, 56, 78, 99],即去重后保留原列表中元素出现的顺序。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-16 16:13:02 | 显示全部楼层
isdkz 发表于 2023-3-16 15:51
这段代码是去重并且保留原列表中元素出现的顺序。

代码的执行过程如下:

太感谢了,理解了。理解了,谢谢您,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-16 16:17:08 | 显示全部楼层
jun_269 发表于 2023-3-16 16:13
太感谢了,理解了。理解了,谢谢您,谢谢

给个最佳答案呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-16 16:56:52 | 显示全部楼层
wp231957 发表于 2023-3-16 15:45
这不就是去重吗   有啥不理解的
不过去重不用这么麻烦  一个set 搞定

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

附:如何查看对象是否可哈希?
>>> a = 1
>>> hash(a)
(不会报错)
>>> hash([1, 1, 4, 5, 1, 4])
报错
用 try…except 捕获就可以判断了
def is_muttable(obj):
    try:
        hash(obj)
        return True
    except:
        return False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 04:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表