本篇阅读的代码实现了将输入的数字转化成一个列表,输入数字中的每一位按照从左到右的顺序成为列表中的一项。

本篇阅读的代码片段来自于30-seconds-of-python

digitize

def digitize(n):
return list(map(int, str(n))) # EXAMPLES
digitize(123) # [1, 2, 3]

该函数的主体逻辑是先将输入的数字转化成字符串,再使用map函数将字符串按次序转花成int类型,最后转化成list

为什么输入的数字经过这种转化就可以得到一个列表呢?这是因为Python中str是一个可迭代类型。所以str可以使用map函数,同时map返回的是一个迭代器,也是一个可迭代类型。最后再使用这个迭代器构建一个列表。

Python判断对象是否可迭代

目前网络上的常见的判断方法是使用使用collections.abc(该模块在3.3以前是collections的组成部分)模块的Iterable类型来判断。

from collections.abc import Iterable
isinstance('abc', Iterable) # True
isinstance(map(int,a), Iterable) # True

虽然在当前场景中这么使用没有问题,但是根据官方文档的描述,检测一个对象是否是iterable的唯一可信赖的方法是调用iter(obj)

class collections.abc.Iterable

ABC for classes that provide the iter() method.

Checking isinstance(obj, Iterable) detects classes that are registered as Iterable or that have an iter() method, but it does not detect classes that iterate with the getitem() method. The only reliable way to determine whether an object is iterable is to call iter(obj).

>>> iter('abc')
<str_iterator object at 0x10c6efb10>

最新文章

  1. 修改策略组/注册表 屏蔽Win10升级解决方法
  2. Hibernate配置log4j日志环境
  3. salesforce 零基础学习(二十一)workflow Q&amp;A
  4. 利用Browser Link提高前端开发的生产力
  5. gdal编译C#开发版本
  6. windows下Qt5.1.0配置android环境搭建 good
  7. React Native学习笔记-1:JSC profiler is not supported.
  8. 【阿里云产品公测】阿里云OpenSearch初次使用评测
  9. ecshop改造读写分离
  10. 利用iptables将本地的80端口请求转发到8080,当前主机ip为192.168.1.1,命令怎么写?
  11. The method getDispatcherType() is undefined for the type HttpServletRequest 升级到tomcat8(转)
  12. PHP树结构,实现无限分级
  13. ue4(c++) 按钮中的文字居中的问题
  14. 接触vsto,开发word插件的利器
  15. 1 实现添加功能 1.1 定义一个学员类(Student),在Student类中定义姓名、性别和年龄属性,定义有 参数的构造方法来初始化所以的成员属性 1.2 创建学员类对象来存放学员信息,并且为每一个学生对象添加的相应的编号。并将 学员类对象添加到Map&lt;Integer,Student&gt;集合中 1.3 添加完成后,显示所有已添加的学员姓名 1.4 限制年龄文本框只能输入正整数,否则的会采
  16. 正则检查是否为IP地址
  17. 【转】android笔记--保存和恢复activity的状态数据
  18. Excel中IF函数的嵌套用法(多条件)
  19. Flask-论坛开发-4-知识点补充
  20. ubuntu18.10安装redis遇到问题

热门文章

  1. groff编写man页
  2. PAT乙级:1076 Wifi密码 (15分)
  3. AI开发者十问:10分钟了解AI开发的基本过程
  4. nmcli命令行修改网络连接名称
  5. TS中 使用deprecated 实现对方法的迭代弃用
  6. &#128293; LeetCode 热题 HOT 100(61-70)
  7. vue 子目录配置,负载均衡 nginx
  8. Android无障碍宝典-talkback
  9. JVM 常用监控工具
  10. Redis是不是真的变慢了?