刚刚在python中发现了这一点奇怪之处,我想我会在这里把它作为一个问题写下来,以防其他人试图用我以前的搜索词来寻找答案。

看起来tuple解包使它成为这样,所以如果您希望遍历返回值,就不能返回长度为1的tuple。虽然外表看起来很骗人。看看答案。

>>> def returns_list_of_one(a):

...     return [a]

...

>>> def returns_tuple_of_one(a):

...     return (a)

...

>>> def returns_tuple_of_two(a):

...     return (a, a)

...

>>> for n in returns_list_of_one(10):

...    print n

...

10

>>> for n in returns_tuple_of_two(10):

...     print n

...

10

10

>>> for n in returns_tuple_of_one(10):

...     print n

...

Traceback (most recent call last):

File"", line 1, in

TypeError: 'int' object is not iterable

>>>

感谢大家的解释。这完全有道理。有人能解释投票被否决的原因吗?你可以看到我最初的想法,它与从函数返回值有关,而不是与元组本身的实际构造有关,这导致我进行了一系列毫无结果的搜索和试验,所以它似乎是合适的提出。(虽然很明显,我选择的单词可能会更好,请参阅上面的编辑。)

您需要显式地将其设置为元组(请参见官方教程):

def returns_tuple_of_one(a):

return (a, )

对。实际上是逗号,而不是括号组成了一个元组。

是的。它也有很好的记录。

这不是bug,一个tuple由val,或(val,)构造。用Python语法定义元组的是逗号而不是括号。

你的函数实际上是返回a本身,这当然是不可测的。

引用序列和元组文档:

A special problem is the construction of tuples containing 0 or 1

items: the syntax has some extra quirks to accommodate these. Empty

tuples are constructed by an empty pair of parentheses; a tuple with

one item is constructed by following a value with a comma (it is not

sufficient to enclose a single value in parentheses). Ugly, but

effective.

(a)不是单元素元组,它只是一个带圆括号的表达式。使用(a,)。

您可以使用tuple()内置方法,而不是难看的逗号。

def returns_tuple_of_one(a):

return tuple(a)

我同意这是更漂亮的,但不幸的是,tuple(10)给出了相同的TypeError: 'int' object is not iterable。

同样不幸的是,tuple('HELLO')产生('H', 'E', 'L', 'L', 'O'),我不希望从returns_tuple_of_one('HELLO')得到。

tuple([a])更丑,但会起作用。

python函数返回元组平均数_关于python:使用函数中的单个项返回元组相关推荐

  1. python教材答案编写函数求成绩平均数_学好Python例题之求成绩平均分

    原博文 2019-08-16 21:03 − 例题: 用户输入若干个成绩,求所有成绩的平均值.每输入一个成绩后询问是否继续输入下一个成绩,回答yes就继续输入下一个成绩,回答no就停止输入成绩. 输入 ...

  2. python读取csv求平均数_利用Python读取CSV文件并计算某一列的均值和方差

    近日需要对excel的csv文件进行处理,求取某银行历年股价的均值方差等一系列数据 文件的构成很简单,部分如下所示 总共有接近七千行数据,主要的工作就是将其中的股价数据提取出来,放入一个数组之中,然后 ...

  3. python 多维list 排序_人生苦短 | Python列表和元组归纳整理

    1. 列表 1.1. 列表是什么? 列表是由一系列按特定顺序排列的元素组成,所以是有序的集合.列表中的元素可以是不同类型的,列表中也可以嵌套列表.在Python中,用方括号[]来表示列表,并用逗号来分 ...

  4. python中format函数用法简书_从Python安装到语法基础,这才是初学者都能懂的爬虫教程...

    Python和PyCharm的安装:学会Python和PyCharm的安装方法 变量和字符串:学会使用变量和字符串的基本用法 函数与控制语句:学会Python循环.判断语句.循环语句和函数的使用 Py ...

  5. python 遍历元组例子_【Python入门自学笔记专辑】——元组的创建、访问、遍历...

    创建元组 ​元组是一种不可变的序列,一旦创建就不能修改.创建元组可以使用tuple([iterable])函数或直接用逗号","将元素分隔. Python Shell实例代码 &g ...

  6. python中高阶函数和装饰器_三.Python高阶函数和装饰器

    1高阶函数 1.1 数学概念回顾下数学知识: y=f(x) 这是最开始接触的普通函数 y=g(f(x)) 这个就是我们接触到的高阶函数 在数学和计算机科学中,高阶函数至少应当是满足下面一个条件的函数: ...

  7. java min 函数的使用方法_【Python】Java程序员学习Python(五)— 函数的定义和使用...

    不想做一个待宰的羔羊!!!!要自己变得强大.... 函数的定义和使用放在最前边还是有原因的,现在语言趋于通用,基本类型基本都是那些,重点还是学习对象的使用方法,而最根本的还是方法的使用,因此优先介绍, ...

  8. python函数赋值给对象_【Python核心编程笔记】一、Python中一切皆对象

    Python中一切皆对象本章节首先对比静态语言以及动态语言,然后介绍 python 中最底层也是面向对象最重要的几个概念-object.type和class之间的关系,以此来引出在python如何做到 ...

  9. python程序如何执行死刑_「Python基础知识」Python生成器函数

    原标题:「Python基础知识」Python生成器函数 对于程序而言,内存也是很重要的,因为程序中很多数据都是保存在内存中的,如果内存中存储的数据过多,那么系统就会崩溃,这是人们不希望发生的. 可以采 ...

最新文章

  1. Mybatis基础:增删改查、模糊查询、多条件查询
  2. 通过ribbon 根据服务名获取所有服务实例的IP和端口列表
  3. Objective - C基础: 第一天 - 1. 第1, 2个OC程序
  4. 涂鸦之作WanAndroid第三方APP
  5. jzoj1751-Span(每日C组)【并查集,贪心】
  6. flume流程之SpoolDir-memory-hdfs
  7. Spring Cloud Sleuth Zipkin - (1)
  8. gpg: no default secret key: 私钥不可用
  9. php声明变量开头,php声明一个变量需要注意些什么
  10. 《机器视觉算法与应用》第3章 机器视觉算法之形态学——学习笔记
  11. Mac使用RDC远程连接Windows并传输文件
  12. Migration中的Collation Confliction
  13. outlook一直显示尝试连接服务器,OUTLOOK EXPRESS老是连接不上服务器怎么办?
  14. java 模板类 mock_mockj: 生成mock数据的利器,按照规则模板生成 mock 数据,mockjs的java实现。同时内置随机 random 一个对象的功能...
  15. 微信小程序--火车票查询
  16. python 获取巨量星图数据
  17. 0 为什么学习stm32f103
  18. Python自动化测试(01)自动化测试环境搭建
  19. 历年计算机一级考试原题,全国计算机等级考试一级历年上机真题.doc
  20. MySQL数据库系列培训教程

热门文章

  1. Redis、Kafka 和 Pulsar 消息队列对比,写得太好了!
  2. Redis 为什么默认 16 个数据库?
  3. 为什么顶尖高手,都是长期主义者?
  4. 小红书做直播的背后,隐藏了什么秘密?
  5. Service Worker
  6. 玩转飞书日历,体验高效办公!
  7. 华为选拔人才的五个素质
  8. 张江男的逆袭,我如何使用leangoo提升团队效率
  9. ui产品小结 - 包含小程序 前端等
  10. 逻辑模型三要素-数据操作