鱼C论坛

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

[已解决]求助,代码如图

[复制链接]
发表于 2021-2-28 21:15:52 | 显示全部楼层 |阅读模式

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

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

x
  1. import easygui as g
  2. import os

  3. msg = '请选择需要打开的文本文档'
  4. title = '文档选择器'
  5. choices = os.listdir('.')
  6. print(choices)

  7. for each_file in choices:
  8.     print(each_file)
  9.     if os.path.splitext(each_file)[1] == '.txt':
  10.         print(each_file)
  11.     else:
  12.         choices.remove(each_file)
  13. print(choices)
  14. g.choicebox(msg, title, choices)
复制代码

代码如上,几个print()是为了检查问题写的,运行结果如下图
想问为什么两个.py 文件会被加进来,看print结果似乎choices列表里有几个元素根本就没进入循环?

最佳答案
2021-2-28 21:33:57
dmyl 发表于 2021-2-28 21:20
跪求大佬解答

在循环中删除列表元素狠不友好,会产生索引变化,会出现一些遗漏现象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-2-28 21:16:52 | 显示全部楼层
粘贴一张图片就超长了,发不出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-28 21:18:19 | 显示全部楼层
运行结果:
==============================================================================
['.txt.docx', 'a.txt', 'test.txt', 'why', 'xxx.py', '为什么.txt', '猜数字.py', '登记用户账号信息.py', '选择打开文本文件.py']
.txt.docx
test.txt
test.txt
why
为什么.txt
为什么.txt
猜数字.py
选择打开文本文件.py
['a.txt', 'test.txt', 'xxx.py', '为什么.txt', '登记用户账号信息.py']
=================================================================================
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-28 21:20:24 | 显示全部楼层
跪求大佬解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-28 21:33:57 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
dmyl 发表于 2021-2-28 21:20
跪求大佬解答

在循环中删除列表元素狠不友好,会产生索引变化,会出现一些遗漏现象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-28 21:42:15 | 显示全部楼层
wp231957 发表于 2021-2-28 21:33
在循环中删除列表元素狠不友好,会产生索引变化,会出现一些遗漏现象

原来如此,感谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-28 21:48:58 | 显示全部楼层
wp231957 发表于 2021-2-28 21:33
在循环中删除列表元素狠不友好,会产生索引变化,会出现一些遗漏现象

不过我还是有点疑惑,看print的结果,几个.py文件应该是进入循环了,为什么没被if语句排除掉呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-2-28 21:55:43 From FishC Mobile | 显示全部楼层
dmyl 发表于 2021-2-28 21:48
不过我还是有点疑惑,看print的结果,几个.py文件应该是进入循环了,为什么没被if语句排除掉呢

应该更换思路或算法,而不要纠结这个问题
因为在循环中使用remove总是会产生一些莫名其妙的事情
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-2-28 22:33:53 | 显示全部楼层
wp231957 发表于 2021-2-28 21:55
应该更换思路或算法,而不要纠结这个问题
因为在循环中使用remove总是会产生一些莫名其妙的事情

彳亍
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 17:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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