博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 循环结构(for-in)
阅读量:6679 次
发布时间:2019-06-25

本文共 2187 字,大约阅读时间需要 7 分钟。

循环结构(for-in)

  • 说明:也是循环结构的一种,经常用于遍历字符串、列表,元组,字典等

  • 格式:

    for x in y:  循环体

    执行流程:x依次表示y中的一个元素,遍历完所有元素循环结束

  • 示例1:遍历字符串

    s = 'I love you more than i can say' for i in s: print(i)
  • 示例2:遍历列表

    l = ['鹅鹅鹅', '曲项向天歌', '锄禾日当午', '春种一粒粟'] ​ for i in l: print(i) # 可以获取下表,enumerate每次循环可以得到下表及元素 for i, v in enumerate(l): print(i, v)
  • 示例3:遍历字典

    d = {
    'a':'apple', 'b':'banana', 'c':'car', 'd': 'desk'} for key in d: # 遍历字典时遍历的是键 print(key, d.get(key)) # for key, value in d.items(): # 上下两种方式等价 d.items() <=> dict.items(d) for key, value in dict.items(d): print(key, value)
  • 列表生成式

    • 可迭代对象:列表、元组、字典等都是可迭代对象,就是可以遍历的对象

    • range,用法如下:

    print(range(10)) # 可以生成从0开始到10的连续整数的迭代对象 print(range(0, 10)) # 可以遍历 for i in range(10): print(i) # 强制转换为列表 print(list(range(1, 11)))
    • 列表生成式:快速生成具有特定规律的列表

    # 列表生成式 print([i for i in range(1, 11)]) print([i*2 for i in range(1, 11)]) print([i*i for i in range(1, 11)]) print([str(i) for i in range(1, 11)]) print([i for i in range(1, 11) if i % 2 == 0])
  • 多重循环:就是循环中嵌套循环

    • 示例1:从终端输入一个整数,打印如下图形:

    n = int(input('请输入一个整数:')) ​ ''' 1 1 2 1 2 3 1 2 3 4 ... 1 2 3 4 ... n ''' ''' j = 1 while j <= n: i = 1 while i <= j: print(i, end=' ') i += 1 print() j += 1 ''' for i in range(1, n+1): for j in range(1, i+1): print(j, end=' ') print()
    • 示例2:打印九九乘法表

    for i in range(1, 10): for j in range(1, i+1): print('{}x{}={}'.format(j, i, j*i), end=' ') print()
    • 示例3:列表排序(选择法)

    l = [1, 9, 4, 2, 0, 8, 3, 7] # 获取长度 n = len(l) # 外层循环用来控制循环的圈数,每一圈可以确定一个元素的位置 # 确定n个元素起始只需要n-1圈即可 for i in range(n-1): # 内层循环用来比较大小交换元素,一圈确定一个元素 for j in range(i+1, n): # 如果不合适 if l[i] > l[j]: # 交换两个变量 l[i], l[j] = l[j], l[i] print(l)
    • 练习:

      1. 使用冒泡法排序列表

        1.冒泡:每次比较相邻的两个元素,不合适就交换,依次向后,一圈下来可以确定一个元素 2.需要使用双重循环,外层循环控制循环的圈数, 内层控制一圈怎么交换
      2. 遍历列表,打印:我叫xxx,今年yyy岁,我来自zzz,数据如下

        lt = [

           {'name':'小王', 'age':18, 'info':[('phone', '123'), ('dizhi', '广州')]},     {'name':'小芳', 'age':19, 'info':[('phone', '789'), ('dizhi', '深圳')]},     {'name':'小杜', 'age':22, 'info':[('phone', '567'), ('dizhi', '北京')]},     {'name':'小孟', 'age':28, 'info':[('phone', '000'), ('dizhi', '上海')]},     {'name':'小乔', 'age':26, 'info':[('phone', '111'), ('dizhi', '河南')]}, ]
      3. 从终端输入两个整数m,n,打印m*n的表格,如:2,5,打印如下效果

        1 2 3 4 5 6 7 8 9 10

转载于:https://www.cnblogs.com/kiki5881/p/8541887.html

你可能感兴趣的文章
基础知识--JAVA注解ElementType
查看>>
kickstart部署centos6.2 x86_64
查看>>
salt 的用户管理
查看>>
我封装的全文检索之solr篇
查看>>
NFC的第一次接触
查看>>
RHEL7 Connection closed by foreign host.
查看>>
Nodejs开发框架之Loopback介绍
查看>>
微信小程序下拉刷新使用整理
查看>>
ubuntu12.04禁用客人会话
查看>>
我的友情链接
查看>>
JVM垃圾收集器与内存分配策略
查看>>
分析Linux 文件系统访问控制列表
查看>>
Confluence WIKI 安装、破解及添加汉化包(Windows)
查看>>
一起入门Citrix_XenDesktop7系列 二-- 跟着图片通过XenDesktop7交付(发布)应用与共享桌面...
查看>>
MyBatis学习手记(一)MaBatis入门
查看>>
SCTF-2014 writeup(部分)
查看>>
Elasticsearch 连接查询
查看>>
Retrofit入门
查看>>
设置Exchange 通讯组接收外部组织邮件
查看>>
观点:正在消逝的运维江湖
查看>>