首页 > 代码库 > 【八】列表、字典、集合、元组间的数据类型转换总结

【八】列表、字典、集合、元组间的数据类型转换总结

一:列表:list[]

  • In [125]: a=[]#新增方法1In [126]: a.append("hello")In [127]: aOut[127]: [hello]#新增方法2In [128]: a.insert(0,"huahua")In [129]: aOut[129]: [huahua, hello]
  • In [131]: aOut[131]: [huahua, hello]#删除方法1In [132]: a.pop(0)Out[132]: huahuaIn [133]: aOut[133]: [hello]#删除方法2In [136]: a.remove("hello")In [137]: aOut[137]: []#删除方法3In [138]: a.clear()In [139]: aOut[139]: []
  • 其他方法,index、sort
    In [145]: aOut[145]: [huahua, hello]#查看huahua这个字符串的角标In [146]: a.index("huahua")Out[146]: 0#给a排序In [147]: a.sort()In [148]: aOut[148]: [hello, huahua

二:字典:dict{key:value}

  • In [77]: d={}#新增方法1In [78]: d["l1"]=1In [79]: dOut[79]: {l1: 1}#新增方法2In [81]: d.update({"13":333})In [82]: dOut[82]: {13: 333, l1: 1}
  • In [85]: dOut[85]: {13: 333, l1: 1}#删除方法1In [86]: del d["l1"]In [92]: dOut[92]: {1: 2, 11: 22}#删除方法3In [98]: d.pop("1")Out[98]: 2In [99]: dOut[99]: {11: 22}
  • 其他方法,keys、values、items
    In [100]: d={"l1":1,"l2":2}In [101]: d.values()Out[101]: dict_values([1, 2])In [102]: d.keys()Out[102]: dict_keys([l1, l2])In [103]: d.items()Out[103]: dict_items([(l1, 1), (l2, 2)])In [104]: for k,v in d.items():     ...:     print(k,v)     ...:     l1 1l2 

三:集合:set{}

  • In [166]: a={1,2,3,4,5}#新增方法1In [167]: a.add(6)In [168]: aOut[168]: {1, 2, 3, 4, 5, 6}
  • In [168]: aOut[168]: {1, 2, 3, 4, 5, 6}#删除方法1In [169]: a.pop()Out[169]: 1In [170]: aOut[170]: {2, 3, 4, 5, 6}#删除方法2In [172]: a.remove(2)In [173]: aOut[173]: {3, 4, 5, 6}#删除方法3In [175]: a.clear()In [176]: aOut[176]: set()
  • 其他方法,update
    In [180]: aOut[180]: {1}#将传入的元素拆分,做为个体传入到集合中#不能传入int值In [182]: a.update(111)---------------------------------------------------------------------------TypeError                                 Traceback (most recent call last)<ipython-input-182-7c012df56cc5> in <module>()----> 1 a.update(111)TypeError: int object is not iterable#将传入的元素拆分,做为个体传入到集合中In [183]: a.update("111")In [184]: aOut[184]: {1, 1}

四:元组:tuple( )

  • 其他方法
    In [200]: test=("1",2,3)#查询3在该元组的角标是多少In [201]: test.index(3)Out[201]: 2#查询2在该元组一共有多少个In [202]: test.count(2)Out[202]: 1 

1.将str转换成各个类型

In [19]: test="123"#查看test的类型In [20]: type(test)Out[20]: str#将字符串转换成listIn [21]: list(test)Out[21]: [1, 2, 3]#将字符串转换成setIn [22]: set(test)Out[22]: {1, 2, 3}#将str转换成tupleIn [23]: tuple(test)Out[23]: (1, 2, 3)#无法将字符串转换成dictIn [24]: dict(test)---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)<ipython-input-24-7b6401465808> in <module>()----> 1 dict(test)ValueError: dictionary update sequence element #0 has length 1; 2 is required

2.列表与字典的转换

In [38]: lol=[["a","b"],["c","d"]]#lol的类型In [39]: type(lol)Out[39]: list#双列表转换成dictIn [40]: dict(lol)Out[40]: {a: b, c: d}#列表里夹杂元组In [41]: asd=[("aa","bb")]#asd的类型In [42]: type(asd)Out[42]: list#将list转换成字典In [43]: dict(asd)Out[43]: {aa: bb}#字典In [44]: qwe={"aa":"bb"}#类型In [45]: type(qwe)Out[45]: dict#将dict转换成list。注意:只取到keyIn [47]: list(qwe)Out[47]: [aa]

3.使用zip将2个变量组合成一个集合、字典、列表、元组

In [48]: num=[1,2,3]In [49]: englist=["one","two","three"]#将2个组合成一个listIn [50]: list(zip(num,englist))Out[50]: [(1, one), (2, two), (3, three)]#将2个组合成一个dictIn [51]: dict(zip(num,englist))Out[51]: {1: one, 2: two, 3: three}#将2个组合成一个setIn [52]: set(zip(num,englist))Out[52]: {(1, one), (2, two), (3, three)}#将2个组合成一个ltupleIn [53]: tuple(zip(num,englist))Out[53]: ((1, one), (2, two), (3, three))

4.将列表或元组转换成字典。注意:里面的每一个字符串只能由2个字符组成

#一个key与value成对的列表In [68]: los=[as,zc]#转换为字典In [69]: dict(los)Out[69]: {a: s, z: c}#一个元组In [70]: los=("az","ww")#转换为字典In [71]: dict(los)Out[71]: {a: z, w: w}

 总体总结:

  1. 列表、字典、集合都具有增删功能
  2. 列表为append,字典为update,集合为add
  3. 列表、字典、集合都具有pop()的方法
  4. 列表和集合具有remove()的方法

【八】列表、字典、集合、元组间的数据类型转换总结