zoukankan      html  css  js  c++  java
  • Python(2)----列表、元组

    列表及列表操作

      列表(list)也叫数组(array),是最常用的Python数据类型 

    1、定义列表

    list=['sunny','杨阳',1,1.5,'哈哈']
    • 用[]定义,元素间用逗号隔开
    • 列表中的元素不需要是相同的数据类型
    • 列表中的元素是有序的,每个元素都分配一个编号,或索引,第一个索引是0,第二个索引是1,依此类推

       列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:

    1 num1=[1,2,3] #一维数组
    2 num2=[1,2,3,[4,56]] #二维数组
    3 nums=[1,2,3,4,['a','b','c','d','e',['','','']],['',0]] #三维数组

    2、列表操作

         2.1  查

               使用下标索引访问列表中的值

     1 list=['小黑','小白',1,1,2,1.5]
     2 print(list[0])   #获取第一个元素
     3 print(list[-1])  #获取最后一个元素
     4 
     6 nums=[1,2,3,4,['a','b','c','d','e',['','','']],['',0]] #三维数组
     9 print(nums[4][5][1])   #获取'二'
    10 print(nums[5][1])      #获取'0'
    11 print(nums[-1][-1])    #获取'0'

       2.2 增

          在列表中增加元素有两种方法:

    • list.append(obj)          在元素末尾添加对象
    • list.insert(index,obj)    在指定位置添加对象
    1 list=['sunny','杨阳',1,1.5,'哈哈']
    2 list.append('lihui')  #加在最后
    3 list.insert(0,502797) #加在索引0处
    4 print(list)

      2.3 改

        找到该元素,取出来重新赋值即可

    1 list=['小黑','小白',1,1,2,1.5]
    2 list[1]='呵呵'    #将小白改成呵呵

      2.4  删

        四种方法:

    • list.pop()  默认删除最后一个元素

               list.pop(index)  删除指定下标的元素,传入的是下标,下标不存在的话会报错

    • list.remove(obj)  删除指定元素,传入的是元素, 如果有相同的元素只会删除第一个,元素不存在时会报错
    • del list[index]     删除指定下标的元素
    • list.clear()    清空列表
    1 list=['sunny','杨阳',1,1.5,'哈哈']
    2 list.pop()
    3 list.pop(1)
    4 list.remove(1.5)
    5 print(list)

    3、 列表内置方法

    • list.count(obj)   统计某个元素在列表中出现的次数
    • list.index(obj)   查找元素的下标,   所传元素不存在的话会报错
    • list.reverse()    反转list
    • list.sort()          排序,默认升序 ;list.sort(reverse=True)  如果指定了reverse=True就是降序
    • list.extend(squ) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    • len(list)    取list长度,即元素个数
    • list(seq)   将元组转为列表
     1 list=['小黑','小白',1,1,2,1.5]
     2 print(list.count(1)) #查询某个元素在list里出现的次数
     3 print('index方法:',list.index('小黑'))   #查找元素的下标   所传元素不存在的话会报错
     4 print('reverse方法:',list.reverse())   #reverse 反转list
     5 print(list)
     6 list.clear()  #清空整个list
     7 
     8 numbers=[4,7,5,0,3.5,6]
     9 numbers.sort()   #排序  升序
    10 print(numbers)
    11 numbers.sort(reverse=True) #如果指定了reverse=True就是降序
    12 print(numbers)
    13 
    14 numbers.extend(list)  #将其他列表中的元素加到此list中
    15 newlist=list+numbers    #用+可以将两个list合并成一个新的list
    16 print(newlist)
    17 print(newlist*3)  #将newlist复制3次

    4、判断某个元素是否在list中,用in (也适用于字符串)

     1 users=['xixi','haha']
     2 
     3 #校验用户名是否存在,不存在则添加
     4 for i in range(5):
     5  username=input('请输入用户名:')
     6  #if users.count(username)>0:
     7  if username in users:    #判断一个元素是否再list中  in/not in count
     8     print('用户已经被注册')
     9  else:
    10     print('用户未注册,可以注册')
    11     users.append(username)
    12     print(users)

    5、循环遍历列表中的元素——for循环

     1 #将passwd中的值都加上abc
     2 passwd=['12345','6865','45632d']
     3 
     4 index=0
     5 for p in passwd:
     6     print(p)
     7     passwd[index]=p+'abc'
     8     index += 1
     9 print(passwd)
    10 
    11 
    12 for index,p in enumerate(passwd): #用enumeration枚举函数,它会取出下标和元素 不用再多定义一个index
    13     print('enmerate每次循环的时候',index,p)
    14     passwd[index]=p+'abc'
    15 print(passwd)

    运行结果:

    12345
    6865
    45632d
    ['12345abc', '6865abc', '45632dabc']
    enmerate每次循环的时候 0 12345abc
    enmerate每次循环的时候 1 6865abc
    enmerate每次循环的时候 2 45632dabc
    ['12345abcabc', '6865abcabc', '45632dabcabc']

    6、切片

         切片是一种取值方式,可获取多个值,适用于list、string。

          list[start_index : end_index : step]

    • 下标:
      • 下标,从0开始,末尾是-1。
      • start_index、end_index都写,切片下标取值顾头不顾尾(指包含start_index,不包含end_index)
      • start_index不写,指从头开始取。
      • end_index不写,指一直取到末尾。
    • 步长step:隔x个取一次值
      • 正数:从左往右取值
      • 负数:从右往左取值
     1 l=['a','b','c','d','e','j','k','l','m','n','o']
     2 #   0   1   2   3   4   5   6   7   8   9   10
     3 print(l[0:4]) #顾头不顾尾
     4 print(l[:4])#如果最前面没写的话,代表从0开始
     5 print(l[4:]) #如果冒号后面没写的话,代表取到最后
     6 
     7 print(l[::3]) #步长,也就是代表隔几个取一次
     8 
     9 a=list(range(1,21))
    10 print(a[1::2]) #取偶数
    11 print(a[::2])  #取奇数
    12 print(a[::-2])  #如果最后面的步长是正数,从左往右取值;步长为负数,从右往左取值
    13 print(a[::-1]) 

    运行结果:

    ['a', 'b', 'c', 'd']
    ['a', 'b', 'c', 'd']
    ['e', 'j', 'k', 'l', 'm', 'n', 'o']
    ['a', 'd', 'k', 'n']
    [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
    [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
    [20, 18, 16, 14, 12, 10, 8, 6, 4, 2]
    [20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]

       切片同样适用于字符串

    1 s=input('请输入一个字符串:')
    2 if len(s)<2:
    3     print('字符串长度必须大于1')
    4 elif s==s[::-1]:     #s[::-1] 从右往左取字符串中的值
    5      print('是回文')
    6 else:
    7      print('不是回文')

     元组

    • 用()定义
    • 元组的值不能改变
    • 只有count()和index()两种方法
    1 sql_con = ('192.168.0.88','root','123456',3307,'my_db')#定义元组
  • 相关阅读:
    模拟hadoop-rpc通信
    IOUtils方式上传下载文件
    HDFS基本操作的API
    HDFS基本命令行操作及上传文件的简单API
    gcj_2016_Round1_B
    hiho_1070_RMQ
    hiho_1068_RMQ_st算法
    hiho_1067_最近公共祖先2
    hiho_1062_最近公共祖先
    hiho_1066_并查集
  • 原文地址:https://www.cnblogs.com/HathawayLee/p/9536657.html
Copyright © 2011-2022 走看看