zoukankan      html  css  js  c++  java
  • python之容器类型转换和推导式

    摘要:本文主要介绍了数据类型的转换和推导式的相关内容。

    1、类型转换

    本部分的类型转换主要是列表、元组、集合三种类型的转换。主要借助三个函数list()、tuple()、set()分别进行列表、元组、集合的类型转换。

     1 list1 = [10, 20, 30, 20, 40, 50]
     2 s1 = {100, 300, 200, 500}
     3 t1 = ('a', 'b', 'c', 'd', 'e')
     4 
     5 # tuple(): 转换成元组
     6 print(tuple(list1))
     7 print(tuple(s1))
     8 
     9 # list():转换成列表
    10 print(list(s1))
    11 print(list(t1))
    12 
    13 # set():转换成集合
    14 print(set(list1))
    15 print(set(t1))

    执行结果如下:

    1 (10, 20, 30, 20, 40, 50)
    2 (200, 100, 500, 300)
    3 [200, 100, 500, 300]
    4 ['a', 'b', 'c', 'd', 'e']
    5 {40, 10, 50, 20, 30}
    6 {'c', 'd', 'e', 'b', 'a'}

     2、推导式

    推导式在列表中的使用:

     1 #连续添加一串数字到列表中
     2 #方法1:非推导式的方法
     3 list1=[]
     4 for i in range(10):
     5     list1.append(i)
     6 print(list1)
     7 #方法2:推导式的方法
     8 list2=[i for i in range(10)]
     9 print(list2)
    10 
    11 #-----------------------------------------------------------------
    12 
    13 #连续添加偶数位数字到列表中
    14 #方法1:非推导式的方法,采用for if
    15 list3=[]
    16 for i in range(10):
    17     if i%2==0:
    18         list3.append(i)
    19 print(list3)
    20 #方法2:非推导式的方法,采用range()步长的方法
    21 list4=[]
    22 for i in range(0,10,2):
    23     list4.append(i)
    24 print(list4)
    25 #方法3:以上两种方法对应的推导式方法
    26 list5=[i for i in range(10) if i%2==0]
    27 print(list5)
    28 list6=[i for i in range(0,10,2)]
    29 print(list6)
    30 
    31 #---------------------------------------------------------------------
    32 
    33 #添加元组到里表中
    34 #方法1:非推导式方法
    35 list7=[]
    36 for i in range(2):
    37     for j in range(3):
    38         list7.append((i,j))
    39 print(list7)
    40 #方法2:推导式方法
    41 list8=[(i,j) for i in range(2) for j in range(3)]
    42 print(list8)

    执行结果如下:

    1 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    3 [0, 2, 4, 6, 8]
    4 [0, 2, 4, 6, 8]
    5 [0, 2, 4, 6, 8]
    6 [0, 2, 4, 6, 8]
    7 [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
    8 [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]

    推导式在字典中的使用:

    1. 列表合并成为字典

     1 #用推导式构成字典
     2 dict1={key:key**2 for key in range(1,5)}
     3 print(dict1)   #  {1: 1, 2: 4, 3: 9, 4: 16}
     4 
     5 #用推导式合并列表
     6 list1=['name','age','id']
     7 list2=['Tom',18,'001']
     8 dict2={list1[i]:list2[i] for i in range(min(len(list1),len(list2)))}  #字典长度取较小者,如下面的例子
     9 print(dict2)  #{'name': 'Tom', 'age': 18, 'id': '001'}
    10 
    11 list3=['name','age','id','class']
    12 list4=['Tom',18,'001']
    13 dict3={list3[i]:list4[i] for i in range(min(len(list3),len(list4)))}
    14 print(dict3)   #{'name': 'Tom', 'age': 18, 'id': '001'}

    2. 从字典中提取数据

    1 #用推导式提取数据
    2 count={'lenove':300,'hp':350,'dell':258,'神舟':210}
    3 dict4={key:value for key,value in count.items() if value>=280}
    4 print(dict4)   #{'lenove': 300, 'hp': 350}

    推导式在集合中的简单使用:

    1 #集合中的推导式简单运用
    2 list=[1,1,3]
    3 set={i**2 for i in range(1,len(list))}
    4 print(set)   #{1, 4}
  • 相关阅读:
    T-Sql语法:行转列(pivot)和列转行(unpivot)
    T-Sql语法:GROUP BY子句GROUPING SETS、CUBE、ROLLUP
    Asp.net使用Plupload上传组件详解
    form标签属性enctype之multipart/form-data请求详解
    基于Owin Oauth2构建授权服务器
    AutoFac使用~IOC容器(DIP,IOC,DI)
    第二节:模型(Models)和管理后台(Admin site)
    第三节:视图(Views)和模板(Templates)
    THINKPHP 3.2 PHP SFTP上传下载 代码实现方法
    Linux 上导出导入sql文件到服务器命令
  • 原文地址:https://www.cnblogs.com/lzy820260594/p/11797291.html
Copyright © 2011-2022 走看看