python之序列

  • 序列

  • 列表

  • 简单案例

 常见的序列类型包括字符串、元组、列表,序列即有序的成员,一个元素有一个序号,可通过索引访问。索引可以为正负。

常用类型的区别:

  • 列表
    列表是比较常用的一种数据类型,可以包含不同的数据类型构成比较复杂的结构,内置函数list,可伸缩性。

    • 列表操作

      生成列表:a=list(range(5))
      l1=['apple',1,'banana','sweet']
      print(a,l1)

      创建空列表:
      ampty=[]

    • 查看修改某个值

      以下以这两个列表为操作对象
      nba=["马刺","湖人","雷霆","森林狼","快船","火箭爵士","鹈鹕","黄蜂"]
      cba=['天津','上海','北京','深圳']
      print(nba)
      print(len(nba)) #查看列表长度
      print(nba[3])#查看第4项
      nba[3]='unknow'#修改第4项为unknown
      print(nba[3])

    • 删除操作

      #---通过索引删除元素----------
      print(nba)
      nba[0:3]=[] #将前四项删除
      print(nba)
      del nba[3:]#保留前三项
      print(nba)
      print(nba.pop())#list.pop(index),缺省索引表示返回最后一个值,并从列表中删除
      print(nba)
      del cba[:] #清空列表
      print(cba)
      del cba #删除整个列表

      #---通过元素值删除----
      print(nba)
      nba.append("湖人")
      print(nba)
      print(nba.remove("湖人"))#如果元素不存在会报错,若存在多个值,只会删除第一个
      print(nba)

    • 添加元素列表

      print(nba)
      nba.insert(1,'1st') #将1st添加到第二个列表前面,指定位置添加元素或列表作为一个元素
      #cba.append(nba) #在列表末尾追加元素
      print(cba)
      print(max(cba),min(cba))
      print(nba)
      for i in range(len(nba)*2): #在各球队后添加一个数字
      if i % 2 == 1:
      nba.insert(i,i)
      print(nba,end=' ')

      #-----添加列表-------
      print(nba+cba) #列表相加产生一个新列表,不会修改原列表
      print(nba,cba)
      nba.extend(nba) #添加指定列表的所有元素扩展列表
      print(nba)

    • 判断元素是否存在
      1.通过组成员关系判断;2.通过统计判断
    • 查看某个元素首次出现的位置

      print(nba.index('湖人'))

    • 数学运算
      计算大小、求和等

      但是求和不支持字符串类型操作:
    • 统计

      #---对列表出现的元素进行统计------
      for i in nba:
       print(i,"\t\t","%d"%nba.count(i))

    • 排序:两种方法一个使用变量的属性llist_name.sort(),另外使用sorted函数

      不区分大小写进行排序:list1.sort(key=str.lower)
      lower表示小写,upper表示大写:

    • 列表推导式

      主要三种形式:
      list_name=[expression for var in range]
      list_name=[expression for var in list_name]
      list_name=[expression for var in list_name if condition]

    例如:随机生成10个随机数从1~100:

    • 列表嵌套
      创建一个二维4X5的数组

      方法二通过列表推导式生成:
    • 列表遍历
      1.直接使用for循环进行遍历

      for item in list_name:
      print(item) #直接输出列表各值;

      2.通过enumerate()函数进行遍历

      3.对过个列表进行遍历
      对多个列表同时遍历时需要使用zip()函数将相同属性组合

    4.判断列表是否为空

    #列表为空则False
    a=['w']
    # if len(a):
    if a:
    print(a)
    else:
    print('空')

  • 简单案例
    • 每日一句励志
      import datetime
      mote=["sentence1","sentence2","sentence3","sentence4","sentence5","sentence6","sentence7"]
      # for index,item in enumerate(mote): #index用于保存元素索引,item获取元素值
      #     print(index+1,item)
      day=datetime.datetime.now().weekday() #month/day显示几月份和第几天
      print(mote[day])
checkcode导入random模块
定义一个保存验证码的变量,for循环实现重复4次的循环在这个循环,
调用random模块提供的random.range(),randian()生成符合要求的验证码
a~z 97-122,A~Z :65~90,1~9 
难点,如何生成这三个条件
"""

if __name__=='__main__':
    checkcode=''
    for i in range(6):
        index=random.randrange(0,6)
        # index=random.randint(0,6)   #randrange 与randiant区别,前者可以设置step
        if index != i and  index+1!=i:
            checkcode+=chr(random.randint(97,120)) #生成a-z小写,chr()转换
        elif index+1==i:
            checkcode+=chr(random.randint(65,90)) #生成一个大写字母
        else:
            checkcode+=str(random.randint(1,10)) #生成一个1-9数字

    print("验证码:"+checkcode)

转载于:https://blog.51cto.com/12580678/2375078

你可能感兴趣的:(python之序列)