7、迭代

作者: 代码充电宝 | 来源:发表于2019-04-26 09:30 被阅读4次
(1)迭代
  • 迭代操作就是对于一个集合,无论该集合是有序还是无序
  • 集合是指包含一组元素的数据结构,我们已经介绍的包括:
    1. 有序集合:list,tuple,str和unicode;
    2. 无序集合:set
    3. 无序集合并且具有 key-value 对:dict
  • 迭代与按下标访问数组最大的不同是
    1. 后者是一种具体的迭代实现方式
    2. 前者只关心迭代结果,根本不关心迭代内部是如何实现的
  • 迭代永远是取出元素本身,而非元素的索引
(2)几种迭代方法
  • 迭代元素自身
L = ['Adam', 'Lisa', 'Bart']
T = ('Adam', 'Lisa', 'Bart')
S = set(['Adam', 'Lisa', 'Bart'])
D = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
# 结果都是
# Adam
# Lisa
# Bart
for item in L:
    print(item)
for item in T:
    print(item)
for item in S:
    print(item)
# dict迭代的是key
for item in D:
    print(item)
  • enumerate() 函数自动把每个元素变成 (index, element) 这样的tuple,再迭代,就同时获得了索引和元素本身
L = ['Adam', 'Lisa', 'Bart']
T = ('Adam', 'Lisa', 'Bart')
S = set(['Adam', 'Lisa', 'Bart'])
D = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
# 结果都是
# (0, 'Adam')
# (1, 'Lisa')
# (2, 'Bart')
for item in enumerate(L):
    print(item)
for item in enumerate(T):
    print(item)
for item in enumerate(S):
    print(item)
for item in enumerate(D):
    print(item)
# 结果都是
# 0 Adam
# 1 Lisa
# 2 Bart
for index,name in enumerate(L):
    print(index,name)
for index,name in enumerate(T):
    print(index,name)
for index,name in enumerate(S):
    print(index,name)
for index,name in enumerate(D):
    print(index,name)
  • str的迭代
str = 'abc'
# a
# b
# c
for item in str:
    print(item)
# (0, 'a')
# (1, 'b')
# (2, 'c')
for item in enumerate(str):
    print(item)
(3)dict的额外迭代方法
  • values():dict转换成一个包含所有value的list
  • keys():dict转换成一个包含所有key的list
D = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
# 95
# 85
# 59
for item in D.values():
    print(item)
    
# Adam
# Lisa
# Bart
for key in D.keys():
    print(key)
  • items() :dict对象转换成了包含tuple的list,tuple[0]表示key,tuple[1]表示value
D = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
# <class 'tuple'> ('Adam', 95)
# <class 'tuple'> ('Lisa', 85)
# <class 'tuple'> ('Bart', 59)
for item in D.items():
    print(type(item),item)
# Adam 95
# Lisa 85
# Bart 59
for key,value in D.items():
    print(key,value)

相关文章

  • 7、迭代

    (1)迭代 迭代操作就是对于一个集合,无论该集合是有序还是无序 集合是指包含一组元素的数据结构,我们已经介绍的包括...

  • 第7章迭代器模式

    第7章迭代器模式 7.1 jQuery中的迭代器 7.2 实现自己的迭代器 7.3 内部迭代和外部迭代 1内部迭代...

  • Java 8 | Stream

    在学习 Stream 之前,我们先来了解一下,内部迭代与外部迭代。 外部迭代 直到 Java 7, 容器框架还是依...

  • 7 | 判断&循环&迭代

    https://www.jianshu.com/p/ad9edd8fba4e 一、 判断(关系)运算符 运算符 <...

  • 7迭代器模式

    来源:JavaScript设计模式与开发实践 迭代器模式是指提供一种方法顺序访问一个聚合对象的各个元素,而又不需要...

  • 「AppSo」页面原型还原

    「AppSo」页面原型还原 [迭代-2018-7-23] 迭代内容: 在原型中标注交互信息 将交互页面关联起来 修...

  • 连续7天,迭代一页PPT!

    Hi,大家好,我是燕衔泥 今天给大家带来的是一页PPT迭代7个版本。为什么要对一页PPT进行迭代呢? 通过迭代,给...

  • iterable/iterator/generator

    7、什么是 iterable/iterator/generator Iterable 可迭代对象列表、元祖、字符串...

  • 【python☞7】迭代--学习笔记

    什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tupl...

  • python基础知识 第一篇

    内容 1 基础数据类型2 循环3 条件判断4 函数5 切片6 列表生成式7 列表生成器8 迭代对象和迭代器 1 基...

网友评论

    本文标题:7、迭代

    本文链接:https://www.haomeiwen.com/subject/iyixnqtx.html