• python 循环结构(for-in)


    循环结构(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
  • 相关阅读:
    POJ3213(矩阵乘法)
    jquery:ajax不接收返回值回
    Swift UI学习UITableView and protocol use
    也可以看看GCD(杭州电2504)(gcd)
    数据结构—队列
    HDU 4946 Area of Mushroom 凸包
    UVa 353
    照片教你eclipse通过使用gradle 打包Android
    普林斯顿大学公开课 算法1-8:并检查集合 高速查找
    Codeforces Round #246 (Div. 2)
  • 原文地址:https://www.cnblogs.com/kiki5881/p/8541887.html
Copyright © 2020-2023  润新知