鱼C论坛

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

TypeError: 'filter' object is not subscriptable

[复制链接]
发表于 2015-4-5 21:39:09 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 xia125602 于 2015-4-5 21:41 编辑

这是我想的求素数的一个思路。主要是通过过滤筛选出所有包含的素数。素数(质数)是除了1和它本身能被整除的数。
但是运行后出现了TypeError: 'filter' object is not subscriptable的错误。求大神帮忙解答下哪里出问题了。谢谢。
最后因为要包含[2],所以应该return [2]+list1.那里些错了,小问题。。
QQ图片20150405075937.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-4-5 22:12:03 | 显示全部楼层
请贴代码。。。没人愿意敲啊亲~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-5 22:58:32 | 显示全部楼层
请贴代码。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-6 09:10:02 | 显示全部楼层
本帖最后由 xia125602 于 2015-4-6 15:14 编辑

这是我最后修改的,谢谢大家!!!

  1. #定义一个求素数的函数prime
  2. def prime(n):
  3.     """该函数生成所有n以内的素数列表,利用filter过滤的思路"""
  4.     list1=[]
  5.     if n==1:return []   #1不是素数
  6.     if n==2:return [2]
  7.     s=range(3,n+1,2) #生成不包含偶数的序列,偶数不是素数
  8.     while True:
  9.         list1.append(s[0])
  10.         s=list(filter(lambda x:x%s[0],s))  #将过滤后的列表赋值给s
  11.         if not s:   #或者len(s)<1
  12.             break
  13.     return [2]+list1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-6 10:59:29 | 显示全部楼层
这是在IDLE依次运行def和filter的结果,能运行。。但是怎么放在while循环中,就出现了 'filter' object is not subscriptable的错误了呢。一直没想通,望大神解释下问题所在,谢谢
QQ图片20150406105852.png
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-4-6 11:20:33 | 显示全部楼层
好吧。自己搞咕出来了。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-6 12:26:38 | 显示全部楼层
s=range(3,n,2)不是list ,而是迭代器,请注意
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-4-6 15:51:43 | 显示全部楼层
xia125602 发表于 2015-4-6 10:59
这是在IDLE依次运行def和filter的结果,能运行。。但是怎么放在while循环中,就出现了 'filter' object is  ...

“XXX”object is not subscriptable
说的是XXX对象不是可索引的,可索引的对象有list,tuple等
如果你确定你的XXX是一个可迭代对象的话,可以尝试用list()函数把它转化为列表,然后通过索引读取元素
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2017-10-21 20:32:38 | 显示全部楼层
我也不懂啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-15 12:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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