鱼C论坛

 找回密码
 立即注册
查看: 974|回复: 7

python里面遇见的一个有意思现象,百思不得其姐

[复制链接]
发表于 2019-5-4 20:38:20 | 显示全部楼层 |阅读模式

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

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

x
chars = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
temp = input ('请输入一段字母和数字的混合体:')
temp = list (temp)
for each in temp:
    if each in chars:
        temp.remove(each)
print (temp)
运行之后如果连续输入3个以上的相同字母,最多只能删除两个相同字母,余下字母仍然存在,为什么会这样?
如,输入:1234556pppp
    输出为:1234556pp
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-5-4 20:42:38 | 显示全部楼层
因为你的 temp 在变,所以有两个 p 没有遍历到。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-4 20:51:58 | 显示全部楼层
°蓝鲤歌蓝 发表于 2019-5-4 20:42
因为你的 temp 在变,所以有两个 p 没有遍历到。

有没有解决方法?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-4 20:59:20 From FishC Mobile | 显示全部楼层
弄个副本
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-4 21:07:19 | 显示全部楼层
本帖最后由 jackz007 于 2019-5-4 21:08 编辑

       楼主试试这个代码:
  1. chars = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
  2. temp = input ('请输入一段字母和数字的混合体:')
  3. temp = list (temp)
  4. for each in temp[:]:      # 修改了这里
  5.     if each in chars:
  6.         temp.remove(each)
  7. print (temp)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-4 21:12:42 | 显示全部楼层
疯言疯语 发表于 2019-5-4 20:51
有没有解决方法?

拷贝一份就完事了,一般的列表的话就浅拷贝,嵌套的就深拷贝。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-5 09:15:18 | 显示全部楼层
有点没太搞懂楼主的意思。。
你的代码,意思是如果输入的字符串中,含有字符串‘chars ’中的任意一个字母的话,就删除这个重复的字母。
5楼的代码写得应该没有问题。。
我有些不懂你所描述的意思:运行之后如果连续输入3个以上的相同字母,最多只能删除两个相同字母,余下字母仍然存在,为什么会这样?
你是想留下一个字母??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-5 12:24:30 | 显示全部楼层
本帖最后由 wwhywhy 于 2019-5-5 12:26 编辑

按照你的程序,输入的是pppp四个p。
执行你的代码:for each in temp:
执行到第二个P,发现是重复的。所以删掉了第二个p.但是程序是要继续的。所以程序的迭代器应该指向的是第三个p,但是现在因为第二个p刚刚被删掉了,所以指到了第四个p的位置。然后又被删掉了。
所以最后剩余2个p
不知道我说明白了没?
而5楼给的代码是:for each in temp[:]:      # 修改了这里
这个temp[:]是temp的复本。所以,你在代码中虽然删掉了p,但是它不受影响。能按照4个p的顺序处理。所以结果就只有1个p了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-15 15:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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