当前位置:   article > 正文

【Python】详解 str、list、dict 相互转换_dictwriter[str]

dictwriter[str]

目录

一、转换为字符串

1.1 list 转 string

1.2 dict 转 string

1.3 其他序列  → 字符串 

二、转换为列表

2.1 string → list

2.2 dict → list

三、转换为字典

3.1 string → dict

3.2 list → dict

四、其他

a. 转换为 int 

b. 转换为 float


一、转换为字符串

1.1 list 转 string

由字符串构成的列表 → 字符串

  1. # str.join(seq) :将序列 seq 中的元素以指定字符 str 连接生成一个新字符串
  2. >>> ''.join(['1','a'])
  3. '1a'

强制类型转换 → 字符串

  1. >>> str(['a',1])
  2. "['a', 1]"

1.2 dict 转 string

由字符串构成的字典 → 字符串

  1. >>> ''.join({'x':'y', 'a':'b'}) # 字符串 dict (默认 keys)
  2. 'xa'
  3. >>> ''.join({'x':'y', 'a':'b'}.keys()) # 字符串 dict.keys
  4. 'xa'
  5. >>> ''.join({'x':'y', 'a':'b'}.values()) # 字符串 dict.values
  6. 'yb'

强制类型转换 → 字符串

  1. >>> str({'x':1, 'y':2})
  2. "{'x': 1, 'y': 2}"
  3. # json.dumps():将 Python 对象编码成 JSON 字符串
  4. >>> import json
  5. >>> json.dumps({"x":1,"y":2,"z":3})
  6. '{"x": 1, "y": 2, "z": 3}'

1.3 其他序列  → 字符串 

  1. >>> ''.join({'x','y'}) # 字符串 set
  2. 'xy'
  3. >>> ''.join(('x','y')) # 字符串 tuple
  4. 'xy'

二、转换为列表

2.1 string → list

常见的字符串 → 列表

  1. >>> string = 'x1y2'
  2. >>> list(string) ## 1.强制类型转换
  3. ['x', '1', 'y', '2']
  4. >>> [str(char) for char in string] ## 2.列表解析式 A
  5. ['x', '1', 'y', '2']
  6. >>> list(map(lambda z:str(z),'x1y2')) ## 2.列表解析式 B
  7. ['x', '1', 'y', '2']
  8. # str.split(str="", num=string.count(str)): ## 3.split()
  9. # 指定分隔符 str 对字符串切片 (默认为所有空字符,包括空格、换行(\n)、制表符(\t)等);
  10. # 若指定分隔次数 num ,则分隔出 num+1 个子字符串 (默认-1 自适应分隔所有)
  11. >>> string1 = 'p y t h o n' # 空格间隔字符串
  12. >>> string1.split()
  13. ['p', 'y', 't', 'h', 'o', 'n']
  14. >>> string2 = 'c s g o' # 制表符间隔字符串
  15. >>> string2.split()
  16. ['c', 's', 'g', 'o']
  17. >>> string3 = 'h,e,l,l,o' # 逗号间隔字符串
  18. >>> string3.split(',')
  19. ['h', 'e', 'l', 'l', 'o']
  20. >>> string4 = 'w#o#r#l#d' # 井号间隔字符串
  21. >>> string4.split('#')
  22. ['w', 'o', 'r', 'l', 'd']

(列表)字符串表达式 → 列表

  1. # eval(expression[, globals[, locals]]): ## 4.eval()
  2. # 执行一个字符串表达式 expression,并返回表达式的值
  3. >>> exp = '[5,6,7]'
  4. >>> eval(exp)
  5. [5, 6, 7]
  6. # 如果用 list() 强制类型转换,则会...
  7. >>> list(exp)
  8. ['[', '5', ',', '6', ',', '7', ']']

2.2 dict → list

常见的字典 → 列表

  1. >>> dictionary = {'x':1, 'y':2}
  2. >>> list(dictionary) # 强制类型转换 (默认 keys 转换)
  3. ['x', 'y']
  4. >>> [i for i in dictionary] # 列表解析式 A
  5. ['x', 'y']
  6. >>> list(map(lambda z: z, dictionary)) # 列表解析式 B
  7. ['x', 'y']
  8. >>> list(dictionary.keys()) # 强制类型转换 (keys 转换)
  9. ['x', 'y']
  10. >>> [j for j in dictionary.keys()] # 列表解析式
  11. ['x', 'y']
  12. >>> list(map(lambda z:z, dictionary.keys())) # 列表解析式 B
  13. ['x', 'y']
  14. >>> list(dictionary.values()) # 强制类型转换 (values 转换)
  15. [1, 2]
  16. >>> [k for k in dictionary.values()] # 列表解析式
  17. [1, 2]
  18. >>> list(map(lambda z:z, dictionary.values())) # 列表解析式 B
  19. [1, 2]

三、转换为字典

3.1 string → dict

(字典)字符串表达式 → 字典

  1. # eval(expression[, globals[, locals]]):执行一个字符串表达式 expression,并返回表达式的值
  2. >>> dictionary1 = '{"x":1, "y":2}'
  3. >>> eval(dictionary1)
  4. {'x': 1, 'y': 2}
  5. # json.loads():解码 JSON 数据,返回 Python 字段的数据类型
  6. >>> import json
  7. >>> jsonData = '{"x":1,"y":2,"z":3}'
  8. >>> json.loads(jsonData)
  9. {'x': 1, 'y': 2, 'z': 3}

3.2 list → dict

嵌套列表 → 字典

  1. >>> list1 = [['x',1],['y',2]] # 列表嵌套于列表
  2. >>> dict(list1)
  3. {'x': 1, 'y': 2}
  4. >>> list2 = [('x',1),('y',2)] # 元组嵌套于列表
  5. >>> dict(list2)
  6. {'x': 1, 'y': 2}
  7. >>> list3 = [{'x',1},{'y',2}] # 集合嵌套于列表
  8. >>> dict(list3)
  9. {1: 'x', 2: 'y'} # 注意顺序!

两个列表 → 字典

  1. >>> list_key = ['x', 'y']
  2. >>> list_value = [1, 2]
  3. >>> dict(zip(list_key, list_value)) # zip()
  4. {'x': 1, 'y': 2}
  5. >>> {key:value for key in list_key for value in list_value} # 字典解析式
  6. {'x': 2, 'y': 2}

四、其他

a. 转换为 int 

int() :由数字构成的字符串 (string) / 各精度的数字 / 由数字构成的字节 (bytes) /  布尔型 (bool)  →  整型 (int)

            或其他进制数 (int)  →  十进制整型 (int)

  1. >>> int('666') # 字符串 (type=string) (不可以含小数点)
  2. 666
  3. >>> int(6.66) # 浮点型 (type=float)
  4. 6
  5. >>> int(b'666') # 字节 (type=bytes)
  6. 666
  7. >>> int(True) # 布尔型 (type=bool)
  8. 1
  9. >>> int(False) # 布尔型 (type=bool)
  10. 0
  11. >>> int(0b110) # 二进制数 (type=int)
  12. 6
  13. >>> int(0x6) # 十六进制数 (type=int)
  14. 6
  15. >>> int() # 无参数默认输出 0
  16. 0

b. 转换为 float

float() :由数字构成的字符串 (str) / 各精度的数字/ 由数字构成的字节 (bytes) /  布尔型 (bool)  →  浮点型 (float)

                或其他进制数  →  十进制浮点型 (float)

  1. >>> float('666') # 字符串 (type=string) (不可以含小数点)
  2. 666.0
  3. >>> float(6) # 整型 (type=int)
  4. 6.0
  5. >>> float(b'666') # 字节 (type=bytes)
  6. 666.0
  7. >>> float(True) # 布尔型 (type=bool)
  8. 1.0
  9. >>> float(False) # 布尔型 (type=bool)
  10. 0.0
  11. >>> float(0b110) # 二进制数 (type=int)
  12. 6.0
  13. >>> float(0x6) # 十六进制数 (type=int)
  14. 6.0
  15. >>> float() # 无参数默认输出 0.0
  16. 0.0

参考文献:

菜鸟教程 - 学的不仅是技术,更是梦想!

python 字典、列表、字符串 之间的转换 - who_care - 博客园

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/217554
推荐阅读
相关标签
  

闽ICP备14008679号