python中元组和列表

1.元组:

   <1>.定义:(),不能改值的数组

           a = 1,2,3,4,5

           print(type(a))

           #tuple

           单个元组的定义(a,)

  

   <2>. 字符串可以直接转成元组:

            c = '1234'

            # print(tuple(c))

            # ('1', '2', '3', '4')

   <3>. 索引,切片操作,同字符串,列表一样

    a = (1, 2, 3, 4)
# 切片:第一位不写,默认从0开始,第二位不写,默认取最后一位,第三位是步长,不写默认是1
print(a[0::2])
#(1, 3)

   <4>. 循环,同字符串,列表,一样,三种循环方式:

           for  i  in  data:

           for  i  in range()   range 取值范围,包含下边界,不包含上边界

           for x,y in enumerate(tuple)  返回结果是一个二维元组

   <5>.多维元组,元组取值

      # a = (1, (0, 0), 3, 4, 5)
  # print(a[1][1])
     # b = ((1, 2), (3, 0), (8, 9))
     # for i in b:
     # for j in i:
     # print(j)

   <6>.元组相加:    

      # a = (1, 2, 3)
  # b = (4, 5, 6)
  # print(a + b)
  # (1, 2, 3, 4, 5, 6)

   <7>.元组相乘:    

     # a = (7, 8, 9)
  # print(a * 3)
  # (7, 8, 9, 7, 8, 9, 7, 8, 9)

 

   <8>. 内置函数作用于元组:

    # len(tuple):计算元组元素的个数
    # max(tuple): 取出元组中元素的最大值
    # min(tuple): 返回元组中元素最小值
    # sum(tuple): 对元组中元素进行求和运算
    # tuple(seq): 将其他的序列转成元组 如 列表,字符串
    # count: tuple.count(i) 返回元组中某元素的出现的次数

2.列表:

   <1>.定义:[] ,可变数据类型

    # a = [1, 2, 3, 4]
    #列表浅拷贝
    # b = a[:]
    # print(b)

   <2>.元组转列表:

    # a = (1, 2, 3, 4)
    # b = list(a)
    #print(b)

   <3>.字符串转列表:

          # 第一种方式

            #a = '1212313'

         #b = list(a)

    #print(b)

   #第二种方式:使用字符串的split方法
   #a = '1&2&3&4'
#a = a.split('&')
#print(a)

 

   <4>.列表取值,直接通过索引去取值:

   #a = [1, 2, 3, 4]

    #print(a[0])

   <5>.列表改值,通过索引去修改:

   # a = [1, 2, 3, 4]
# a[1] = 10
# print(a)

   <6>.循环改值:

   #a = [1, 2, 3, 4]

   #for i in range(0, len(a)):

   #   a[i] = a[i] ** 2

   #print(a)

  #[1, 4, 9, 16]

 

   <7>.列表循环,同字符串,元组一样:

   for i in list:

        for i in range(0,len(list))

        for x,y in enumerate(list)

   <8>.列表值的追加 append:

    L = [1, 2, 3, 4]

     L.append(5)

   print(L)

   <9>.列表值的追加 insert:

  L = [1, 2, 3, 4]
# 往列表中第三位追加9
L.insert(2, 9)
print(L)
#[1, 2, 9, 3, 4, 5]

   <10>.列表弹出pop 默认弹出最后一位,写了索引,弹出索引指定的值,pop函数有返回值

   d = [1, 2, 3, 4]
# d.pop()
# print(d)
# [1, 2, 3]

        # 如果写了索引,弹出索引指定的值

     #d.pop(1)  弹出第二位

     #print(d)

   #[1, 3, 4]

   <11>.extend 列表追加 ,与两个列表相加(lista + listb) 不同的是,相加会创建新的列表,而extend则是在原来的列表上追加值,不会创建新的列表,extend返回值是None

  # a = [1, 2, 3, 4]
  # b = [5, 6, 7, 8]
  # print(a.extend(b))
  # None
  # print(a)
  # [1, 2, 3, 4, 5, 6, 7, 8]

   <12>.列表删除,remove 按内容来删除,只能删除第一次出现的值

  # a = [1, 2, 4, 1, 4, 2, 1]
  # 删除元素值为1
  # a.remove(1)
  # print(a)
  # [2, 4, 1, 4, 2, 1]
 

   <13>.clear 清空列表的值,返回空列表

   <14>. sort 排序 默认按照升序排序(reverse=False),如果按照降序排序,需要写 reverse=True,sort没有返回值,返回为None

  # a = [1, 2, 3, 4, 5, 6, 7, 8]
  # a.sort()
  # print(a)
  # [1, 2, 3, 4, 5, 6, 7, 8]
# a.sort(reverse=True)
# print(a)
  # [8, 7, 6, 5, 4, 3, 2, 1]

   <15>. sorted排序 ,sorted 有返回值,返回结果是拍好序的列表

  # a = [1, 2, 3, 4, 5, 6, 7, 8]
  # print(sorted(a, reverse=True))
  # [8, 7, 6, 5, 4, 3, 2, 1]

   <16>. sort 与 sorted的区别,sort是列表的方法,sort是操作列表本身,没有返回值,而sorted是系统函数,有返回值,返回的是排好序的新列表,相当于把原来的列表copy了一次

  # a = 'acdfe'
  # print(sorted(a, reverse=True))

   <17>. reverse 列表反转 

     a = [1, 2, 3, 4, 5, 6, 7, 8]

   #a.reverse()

   #print(a)

  #[8, 7, 6, 5, 4, 3, 2, 1]

#第二种方式,使用切片
  a = [1, 2, 3, 4, 5, 6, 7, 8]
  a = a[::-1]
  print(a)
  #[8, 7, 6, 5, 4, 3, 2, 1]

   <18>. 列表推导式

  有列表 a = [1,3,4,7,11]。输出每个元素加2乘方,所组成的新列表
  # print([(i + 2) ** 2 for i in [1, 3, 4, 7, 11]])

   <19>. 列表去重方法

  <1>.使用set方法,排序的顺序会乱:

    a = [9, 2, 7, 9, 2, 7, 1, 8]

     print(set(a))

     #{1, 2, 7, 8, 9}

   # set去重后保留原来的顺序
    a = [9, 8, 7, 5, 2, 3, 5, 7]
    b = list(set(a))
    b.sort(key=a.index)
    print(b)

    

  <2>.往空列表追加值,保留原来的排序规则:

    a = [9, 2, 7, 9, 2, 7, 1, 8]
    b = []
   for i in a:
  if i not in b:
  b.append(i)
    print(b)
   #[9, 2, 7, 1, 8]

  <3>.使用字典的fromkeys方法将列表转成字典,并取出字典的keys,转成列表

    a = [9, 2, 7, 9, 2, 7, 1, 8]
    print(list(dict.fromkeys(a).keys()))
    #[9, 2, 7, 1, 8]

   


   

 

   
 

  

 


  

 

 

         

 

 
 

 

 

 

 

     

 

 

 

 

 

 

 

posted @ 2021-01-24 20:23  maxwell11  阅读(349)  评论(0编辑  收藏  举报