zoukankan      html  css  js  c++  java
  • python学习21之高级特性

    ''''''
    '''
    1.切片
    (1)谁可以进行切片操作?——列表,元组,字符串
    (2)切片有以下几种操作
    '''
    #[a:b]:取从下标为a的元素开始,到下标为b-1的元素结束
    L=['aa','bb','cc','dd','ee','ff','gg']
    l1=L[0:3]#取出来的是:下标为0,1,2的元素
    print(l1)
    #['aa', 'bb', 'cc']

    #[:c]:表示从下标0开始取,取到c-1;[d:]:表示从d开始取,取到最后;如果d为负数,表示倒数第d个元素
    l2=L[:3]
    print(l2)
    #['aa', 'bb', 'cc']
    l3=L[-2:]
    print(l3)
    #['ff', 'gg']
    l4=L[1:]
    print(l4)
    #['bb', 'cc', 'dd', 'ee', 'ff', 'gg']

    #[a:b:c]:从a开始取,取到b-1,每隔c-1个数取一次,称为步长值为c
    l5=L[0::2]
    print(l5)
    #['aa', 'cc', 'ee', 'gg']
    '''
    2.迭代
    (1)谁可以进行迭代操作?——可以迭代的对象都可以进行迭代操作:列表,元组,字符串,字典,集合等
    (2)迭代有以下几种操作
    '''
    #常规操作:for in 循环或者while循环
    for n in L:
    print(n)

    i=0
    while i < len(L):
    print(L[i])
    i+=1

    #列表的迭代:用for in D循环打印出来的是字典的键
    D={1:'xiaowang',2:'xiaoli',3:'xiaozhang',4:'xiaoliu'}
    for k in D:
    print(k)
    '''
    1
    2
    3
    4
    '''
    #如果想打印出字典的值,用D.values()函数
    for v in D.values():
    print(v)
    '''
    xiaowang
    xiaoli
    xiaozhang
    xiaoliu
    '''
    #如果想成对打印,则用D.items()
    for d in D.items():
    print(d)
    print(type(d))
    '''
    (1, 'xiaowang')
    (2, 'xiaoli')
    (3, 'xiaozhang')
    (4, 'xiaoliu')
    <class 'tuple'>
    '''
    #还可以这样
    for k,v in D.items():
    print(k,v)
    '''
    1 xiaowang
    2 xiaoli
    3 xiaozhang
    4 xiaoliu
    '''
    #在python中,for循环里出现两个变量十分常见
    for a,b in [(1,1),(2,2),(3,3)]:
    print(a,b)
    '''
    1 1
    2 2
    3 3
    '''
    '''
    3.列表生成式
    通过在列表里写一行表达式及表达式中变量需要满足的条件,来完成生成列表的操作,取代循环,简化代码
    '''
    l6=[x * x for x in range(1, 11)]
    print(l6)
    #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    '''
    写列表生成式时,把要生成的元素x * x放到前面,后面跟for循环,就可以把list创建出来,十分有用。
    for循环后面还可以加上if判断,这样我们就可以筛选出仅偶数的平方:
    '''
    l7=[x * x for x in range(1, 11) if x % 2 == 0]
    print(l7)

    #还可以使用两层循环,可以生成全排列:
    l8=[m + n for m in 'ABC' for n in 'XYZ']
    print(l8)
    # ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

    #把一个list中所有的字符串变成小写:
    L = ['Hello', 'World', 'IBM', 'Apple']
    [s.lower() for s in L]
    '''
    如果list中既包含字符串,又包含整数,由于非字符串类型没有lower()方法,所以列表生成式会报错。
    使用内建的isinstance函数可以判断一个变量是不是字符串。请修改列表生成式,通过添加if语句保证列表生成式能正确地执行:
    '''
    L1 = ['Hello', 'World', 18, 'Apple', None]
    L2=[s.lower() for s in L1 if isinstance(s,str) ]


  • 相关阅读:
    【UOJ 121】Hzwer的陨石
    【UOJ 666】古老的显示屏
    【UOJ 222】正方形二分型
    【UOJ 654】虫洞问题
    【UOJ 226】最近公共祖先
    【UOJ 92】有向图的强连通分量
    poj2139 Floyd
    poj1631 dp,最长上升子序列
    poj1065&1548 dp,最长上升子序列,偏序与反偏序
    poj1458(裸LCS)
  • 原文地址:https://www.cnblogs.com/wsxcode/p/12554898.html
Copyright © 2011-2022 走看看