zoukankan      html  css  js  c++  java
  • python学习笔记(三)---高级特性

    一、切片

    取无数多个list元素 不用一个个取得笨方法就用切片

    对这种经常取指定索引范围的操作,用循环十分繁琐,因此,Python提供了切片(Slice)操作符,能大大简化这种操作。

    对应上面的问题,取前3个元素,用一行代码就可以完成切片:

    记住倒数第一个元素的索引是-1,第一个数的索引是0

    #1.传统方法
    L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack']
    R = []

    #取前N个元素,也就是索引为0-(N-1)的元素,可以用循环 n=3 for i in range(n): R.append(L[i]) print( R ) #2 切片方法 print( L[0:3] ) print( L[:3] ) print( L[-2:] ) print( L[-2:-1] ) #切片操作十分有用。我们先创建一个0-99的数列 L = list(range(100)) print("前10个数") print ( L[:10]) print(" 前10个数 隔2个取1个数") print ( L[:10:2]) print(" 所有数,正向,每10个取一个数") print(L[::10]) print("后10个数") print(L[-10:]) print('直接定义取几个数') print ( 'ABCDEFG'[:3] ) print ( 'ABCDEFG'[::2] ) print((0, 1, 2, 3, 4, 5)[:3]) print( L[:] )

    其实是substring

    二、迭代

    给定一个对象(tuple、list、dict、string字符串),我们可以通过for循环来遍历,这种遍历我们称为迭代(Iteration)

    在Python中,迭代是通过以下内容来完成的

    for ... in  

    只要当前对象是可迭代对象,则for循环就可正常运行,判断当前对象是否可迭代,且对当前对象进行迭代

    # -*- coding: utf-8 -*-
    from collections import Iterable
    print(isinstance([4,5,6],Iterable))
    #1.迭代打印list
    for i in [4,5,6]:
        print(i)
    #print(2.迭代打印tuple)
    for i in (6,7,8):
        print (i)
    '''3.迭代打印dict
         使用当前的迭代可以输出key、输出value、输出key和value
    '''
    d={'a':1,'b':2,'c':3}
    for value in d.values():
        print(value)
    for key in d.keys():
        print(key)
    for key,value in d.items():
        print (key,value)
    
    for x,y in [(1,1),(2,4),(3,9)]:
        print(x,y)
    
    #4.迭代字符串
    for i in 'ABC':
        print (i)
        

    三、列表生成式

     

    # -*- coding: utf-8 -*-
    #1.法一 使用列表生成式,动作、循环、条件
    a=[x * x for x in range(1, 11) if x % 2 == 0]
    print(a)
    
    
    #2.法二 原本的方式
    L = [ ]
    for x in range(1,11):
        if x % 2 == 0:
    
            L.append(x*x)
    print(L)
    
    #3.两层循环
    b=[m+n for m in 'ABC' for n in 'XYZ']
    print(b)

    结果:

    四、生成器

    五、迭代器

  • 相关阅读:
    English trip V1
    English trip V1
    第一类斯特林数
    bzoj 3601 一个人的数论
    bzoj 4407 于神之怒加强版
    bzoj 2693 jzptab
    bzoj 4184 shallot
    luogu P3920 [WC2014]紫荆花之恋
    bzoj 4269 再见Xor
    luogu P2183 [国家集训队]礼物
  • 原文地址:https://www.cnblogs.com/chenxiaomeng/p/12249959.html
Copyright © 2011-2022 走看看