首页 \ 问答 \ 生日悖论列表是非类型(Birthday Paradox List is nonetype)

生日悖论列表是非类型(Birthday Paradox List is nonetype)

我正试图用Python解决生日悖论。 我很接近,但最后一块让我感到茫然。 我正在使用随机生成给定范围和要创建的项目数的数字列表。 这样可行。

然后我检查列表(上面生成的)是否有重复。 这样可行。

然后我尝试生成给定(n)列表。 这是我遇到麻烦的地方。 它生成一个列表然后返回“NoneType”不可迭代。 让我感到困惑的是,列表已生成,但Python并未将其视为列表。

这是代码:

def make_bd(n, r):
    """Generates (r) numbers of birthdays in a range (n)."""
    import random
    t = [random.randrange(n) for i in range(r)]
    print (t)


def has_dupe(test):
    """Here I test to see if I can detect a duplicate birthday.
This is based on problem #4."""

    d = []
    count = 0
    for number in test:
        if number in d:
            count = count + 1
        d.append(number)
    if count >= 1:
        return True
    return False

def dupebd(n,r,t):
    count_dupe = 0
    for i in range(n):
        if has_dupe(make_bd(r,t)):
            count_dupe = count_dupe + 1
    print (float(count)/n)       

dupebd(50,365,23)

这是结果:

>>> has_dupe(make_bd(50,6))
[13, 3, 8, 29, 34, 44]
Traceback (most recent call last):
  File "<pyshell#45>", line 1, in <module>
    has_dupe(make_bd(50,6))
  File "<pyshell#44>", line 7, in has_dupe
    for number in test:
TypeError: 'NoneType' object is not iterable

I'm trying to solve the Birthday Paradox with Python. I'm close but the last piece has me at a loss. I'm using random to generate a list of numbers given a range and number of items to create. That works.

I then check to see if a list (generated above) has duplicates. That works.

I then try to generate a given (n) of lists. Here is where I run into trouble. It generates one list then returns "NoneType" is not iterable. What puzzles me is, the list is generated but Python is not seeing it as a list.

Here's the code:

def make_bd(n, r):
    """Generates (r) numbers of birthdays in a range (n)."""
    import random
    t = [random.randrange(n) for i in range(r)]
    print (t)


def has_dupe(test):
    """Here I test to see if I can detect a duplicate birthday.
This is based on problem #4."""

    d = []
    count = 0
    for number in test:
        if number in d:
            count = count + 1
        d.append(number)
    if count >= 1:
        return True
    return False

def dupebd(n,r,t):
    count_dupe = 0
    for i in range(n):
        if has_dupe(make_bd(r,t)):
            count_dupe = count_dupe + 1
    print (float(count)/n)       

dupebd(50,365,23)

Here's the result:

>>> has_dupe(make_bd(50,6))
[13, 3, 8, 29, 34, 44]
Traceback (most recent call last):
  File "<pyshell#45>", line 1, in <module>
    has_dupe(make_bd(50,6))
  File "<pyshell#44>", line 7, in has_dupe
    for number in test:
TypeError: 'NoneType' object is not iterable

原文:https://stackoverflow.com/questions/10374256
更新时间:2019-06-23 01:16

最满意答案

在第5行中,您打印t但不返回它,因此make_bd返回None 。 将行更改为

return t

In line 5 you print t but do not return it, so that make_bd returns None. Change the line to

return t
2012-04-29

相关问答

更多

Python中的逻辑悖论?(Logical paradox in python?)

这是由于运营商的优先。 not none == True意思not (None == True)表示None != True ,这是正确的。 同样, None != False也是如此。 值None与布尔值不同。 你最后的两个表达式表示False != False ,这是假的, False != True ,这是真的。 This is due to operator precedence. not none == True means not (None == True) means None ! ...

CSS z指数悖论花(CSS z-index paradox flower)

这是我的尝试: http : //jsfiddle.net/Kx2k5/1/ (在Fx27 , Ch33 , IE9 , Sf5.1.10和Op19上成功测试) CSS .item { /* include borders on width and height */ -webkit-box-sizing : border-box; -moz-box-sizing : border-box; box-sizing : border-box; ...

python的报错 AttributeError: 'NoneType' object has no attribute 'CreateLayer'

out_ds没实例化,一般前面需要有类似 out_ds = 某种类型()

用于list_of_list折叠的python lambda(python lambda for list_of_list collapse)

传递给reduce的函数必须返回fn(a,b) 。 由于extend()返回None,因此您不能使用您拥有的lambda。 您可以强制lambda通过将其更改为以下值来返回值: fn = lambda a,b: a.extend(b) or a 并调用reduce(fn, lol)将返回附加在一起的'lol'中所有列表的值。 注意会发生什么。 您还将lol的第一个元素修改为此求和值。 为什么? 因为对reduce()的第一次调用使用给定序列的前2个元素作为a和b ,所以调用fn(a,b) ,并将 ...

NodeJS连接到paradox数据库(NodeJS connect to paradox database)

您需要一个用于在Windows上运行的节点的ODBC驱动程序。 这个问题可能会有所帮助。 You'd need an ODBC driver for node running on Windows. This question might be of some help.

List >和List 在java中是不兼容的类型[duplicate](List> and List are incompatible types in java [duplicate])

好的,所以这是由于微妙的语义差异。 List 这是List的原始类型,等同于T为Object类型。 所以这与说: List<Object> 现在,编译器知道一个事实,无论发生什么,这是Object类型的一个子类。 如果你这样做.. List myList = new ArrayList(); myList.add(new Object()); 它会正常工作! 这是因为Object是相同的,或者是这个类型的一些派生。 List<?> 这实际上是一个未知 ( Java Docs ) 的列表 。 ...

使用Apache Spark将键值对缩减为键列表对(Reduce a key-value pair into a key-list pair with Apache Spark)

Map和ReduceByKey reduce输入类型和输出类型必须相同,因此如果要汇总列表,则必须将输入map到列表。 之后,您将列表组合成一个列表。 合并列表 您需要一种方法将列表合并到一个列表中。 Phyton提供了一些方法来组合列表 。 append修改第一个列表并且总是返回None 。 x = [1, 2, 3] x.append([4, 5]) # x is [1, 2, 3, [4, 5]] extend也是一样的,但解开列表: x = [1, 2, 3] x.extend([4, ...

python list操作

就是用类型转换啊 for i in list: list2[int(float(i[0])*10)]=i print list2

相关文章

更多

最新问答

更多
  • Android宽度:100%修复(网站接管问题)(Android width:100% fix (website takeover issue))
  • C ++函数/方法设计的良好实践(Good practice in C++ function/method design)
  • 计算其他表中不存在的所有记录 - SQL查询(Count all records that does not exist to other table - SQL Query)
  • 为什么我要用JPA共享ID?(Why do I get shared Ids with JPA?)
  • asp.net - 如何显示来自html格式的数据行的字段(asp.net - how to display a field from data row that is in html format)
  • 我们如何使用ActiveRecord从连接表中删除行?(How can we delete rows from a join table by using ActiveRecord?)
  • ng-class搞乱了类的顺序(ng-class messing with the order of classes)
  • oracle 12g无效数字错误(oracle 12g invalid number error)
  • 更改ng-src值onclick(Change ng-src value onclick)
  • 如何在android中自动添加自定义依赖项以创建新项目?(How to add custom dependencies automatically in android for ever a new project is created?)
  • datetime函数在PHP中(datetime function in php)
  • 在javascript中获取会话数组的值(in javascript get the value of a session array)
  • 如何在UTF8中编译LaTeX?(How can I compile LaTeX in UTF8? [closed])
  • Rspec:“array.should == another_array”,但不用担心订单(Rspec: “array.should == another_array” but without concern for order)
  • Logcat错误:无法在android片段中加载视图(Logcat error: unable to load view in android fragments)
  • JavaFX的。(JavaFX. Adding items to the list in different threads is not working)
  • 从GDATA日历资源迁移到Google Calendar Resource api(Migrate from GDATA calendar resource to Google Calendar Resource api)
  • SSRS 2008 - 以零情景处理分割(SSRS 2008 - Dealing with division by zero scenarios)
  • 我如何以编程方式添加一个listView列标题的点击事件(How can I add a listView column header a click event programmatically)
  • Wxpython:无法检索有关列表控件项XXX的信息(Wxpython: Couldn't retrieve information about list control item XXX)
  • 使用Tortoise SVN在SVN存储库中移动目录(Move Directory across SVN repository using Tortoise SVN)
  • 天蓝色服务结构集群中的web api无状态服务是否在一段时间不活动后进入休眠状态?(Do web api stateless services in azure service fabric cluster go to sleep after a period of inactivity?)
  • 我可以设置intelliJ来突出显示PHP编码风格吗?(Can I set intelliJ to highlight php coding style?)
  • 用javafx创建一个Truetype字体文件(Creating a Truetype Font file with javafx)
  • Spring ftp配置错误(Spring ftp configuration is wrong)
  • 使用gsub去除多个字符(Using gsub to strip multiple characters)
  • 续订推送证书并保持当前的App Store App正常工作(Renew Push certificate and keep current App Store App working)
  • js:ES5和ES6之间关于'this'关键字用法的一个令人困惑的观点(js: one confusing point about 'this' keyword usage between ES5 and ES6)
  • window.onload vs $(document).ready()(window.onload vs $(document).ready())
  • 在Swift中,如何声明一个符合一个或多个协议的特定类型的变量?(In Swift, how can I declare a variable of a specific type that conforms to one or more protocols?)