强制转换成字符串

str()

将列表(list)转为字符串

var1 = [1, 2, 3, 4]
var2 = str(var1)
print(type(var2)) # <class 'str'>
print(repr(var2)) # '[1, 2, 3, 4]'

注:repr() 函数将对象转化为供解释器读取的形式,返回一个对象的字符串格式。

将元组(tuple)转为字符串

var1 = (1, 2, 3, 4)
var2 = str(var1)
print(type(var2)) # <class 'str'>
print(repr(var2)) # '(1, 2, 3, 4)'s

将集合(set)转为字符串

var1 = {1, 2, 3}
var2 = str(var1)
print(type(var2)) # <class 'str'>
print(repr(var2)) # '{1, 2, 3}'

将字典(dict)转为字符串

var1 = {"name": "tom", "age":18}
var2 = str(var1)
print(type(var2)) # <class 'str'>
print(repr(var2)) # "{'name': 'tom', 'age': 18}"

将数字(number)转为字符串

var1 = 100
var2 = str(var1)
print(type(var2)) # <class 'str'>
print(repr(var2)) # '100'

将布尔(bool)转为字符串

var1 = True
var2 = str(var1)
print(type(var2)) # <class 'str'>
print(repr(var2)) # 'True'

总结:str()函数可以将所有的数据类型转为字符串,在当前的数据类型两边加上引号。

强制转换成列表

list()

将字符串(str)转为列表

var1 = "Hello"
var2 = list(var1)
print(var2) # ['H', 'e', 'l', 'l', 'o']
print(type(var2)) # <class 'list'>

将元组(tuple)转为列表

var1 = (2, 3, 4)
var2 = list(var1)
print(var2) # [2, 3, 4]
print(type(var2)) # <class 'list'>

将集合(set)转为列表

var1 = {"a", "b", "c"}
var2 = list(var1)
print(var2) # ['a', 'b', 'c']
print(type(var2)) # <class 'list'>

将字典(dict)转为列表

var1 = {"aa": 1, "bb": 2, "cc": 3}
var2 = list(var1)
# 将字典中的键(key)转为列表,不包括值(value)
print(var2) # ['aa', 'bb', 'cc']
print(type(var2)) # <class 'list'>

强制转换成元组

tuple()

将字符串(str)转为元组

var1 = "hello"
var2 = tuple(var1)
print(type(var2)) # <class 'tuple'>
print(repr(var2)) # ('h', 'e', 'l', 'l', 'o')

将列表(list)转为元组

var1 = ["a", "b", "c"]
var2 = tuple(var1)
print(type(var2)) # <class 'tuple'>
print(repr(var2)) # ('a', 'b', 'c')

将集合(set)转为元组

var1 = {1, 2, 3, 4}
var2 = tuple(var1)
print(type(var2)) # <class 'tuple'>
print(repr(var2)) # (1, 2, 3, 4)

将字典(dict)转为元组

var1 = {"a": 1, "b": 2, "c": 3}
var2 = tuple(var1)
print(type(var2)) # <class 'tuple'>
# 将字典中的键(key)转为元组,不包括值(value)
print(repr(var2)) # ('a', 'b', 'c')

强制转换成集合

set()

将字符串(str)转为集合

var1 = "你好啊,啊 "
var2 = set(var1)
print(type(var2)) # <class 'set'>
print(repr(var2)) # {'你', ',', '好', ' ', '啊'}

将列表(list)转为集合

var1 = [1, 2, 3, 1, 4, 2]
var2 = set(var1)
print(type(var2)) # <class 'set'>
print(repr(var2)) # {1, 2, 3, 4}

将元组转为(tuple)集合

var1 = (1, 2, 3, 1)
var2 = set(var1)
print(type(var2)) # <class 'set'>
print(repr(var2)) # {1, 2, 3}

将字典(dict)转为集合

var1 = {"name": "tom", "age": 20}
var2 = set(var1)
print(type(var2)) # <class 'set'>
# 将字典中的键(key)转为集合,不包括值(value)
print(repr(var2)) # {'name', 'age'}

强制转换成字典

要求: 必须是等长的二级容器,并且里面的元素个数只能是2个

dict()

  • 外层是列表,里层是列表或者元组
list1 = [["a", 2], ["b", 3]]
dict1 = dict(list1)
print(dict1) # {'a': 2, 'b': 3}
print(type(dict1)) # <class 'dict'>
  • 外层是元组,里层是列表或元组
tup1 = (("a", 2), ("b", 3))
dict1 = dict(tup1)
print(dict1) # {'a': 2, 'b': 3}
print(type(dict1)) # <class 'dict'>
  • 外层是集合,里层是列表或元组
set1 = {("a", 2), ("b", 3)}
dict1 = dict(set1)
print(dict1) # {'a': 2, 'b': 3}
print(type(dict1)) # <class 'dict'>

例外情况:

  • 外层是列表,里层是列表或元组

    可以实现但是不推荐使用,可能达不到想要的结果,因为集合是无序的。

    list1 = [{"a", 2}, {"b", 3}]
    dict1 = dict(list1)
    # 可能的情况
    print(dict1)
    # {'a': 2, 3: 'b'}
    # {'a': 2, 'b': 3}
  • 外层是列表,元组或集合,里层放字符串

    字符串长度只能是2位,不推荐使用。

    list1 = ["a1", "b2"]
    dict1 = dict(list1)
    print(dict1) # {'a': '1', 'b': '2'} list2 = ["a11", "b22"]
    # ValueError: dictionary update sequence element #0 has length 3; 2 is required
    dict2 = dict(list2)

Python容器数据类型之间的转换的更多相关文章

  1. 记录我的 python 学习历程-Day07 基础数据类型进阶 / 数据类型之间的转换 / 基础数据类型总结 / 编码的进阶

    基础数据类型 str(字符串) str:补充方法练习一遍就行 s.capitalize() 首字母大写,其余变小写 s = 'dyLAn' print(s.capitalize()) # Dylan ...

  2. JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  3. java中的、标识符、运算符以及数据类型之间的转换。

    ---恢复内容开始--- 数据类型之间的转换: 1:自动转换:就是不用说出要转换成什么类型,由java中的虚拟机自动将小数据类型转换成大数据类型,但大数据中的数据精度有可能被破坏. 2:强制转换:强制 ...

  4. Java基础——数据类型之间的转换

    Java数据类型分为三大类,即布尔型.字符型和数值型.其中数值型又分为整型和浮点型.Java的基本数据类型(8种)为布尔型boolean(1字节):字符型char(2字节):整型byte(1字节).s ...

  5. Java中的基本数据类型和基本数据类型之间的转换

    在Java中有8中基本数据类型,分别为: 整型: byte.short.int.long 浮点型:float.double 布尔型:boolean 字符型:char. byte:    8位,  封装 ...

  6. 浅谈C#语言中的各种数据类型,与数据类型之间的转换

    什么是数据类型? 数据类型,百度百科是这样解释的:数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作.这样的解释对于一个初学者来说未必太过于深奥. 简单点说,数据类型就是不同长度的 ...

  7. python容器数据类型的特色

    python容器数据类型的特色 list:           可变数据类型(不可哈希), 有序, 可索引获取, 可修改 Dict:         可变数据类型(不可哈希), 3.6版本有序, 可通 ...

  8. 系统学习(javascript)_基础(数据类型之间的转换)

    在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用javascript弱变量类型转换). 强制转换: 利用js提供的函数parseInt(),parseFloat(),Number( ...

  9. 10-10C#基础---数据类型之间的转换

    10-10  C#基础数据类型转换(熟练掌握) 第一课 数据类型之间的转换 基本类型的转换:自动转换(隐式转换)和强制转换(显示转换) 装箱转换:允许值类型隐式转换成引用类型. 拆箱转换:允许将引用类 ...

随机推荐

  1. Traefik-v2.x快速入门

    一.概述 traefik 与 nginx 一样,是一款优秀的反向代理工具,或者叫 Edge Router.至于使用它的原因则基于以下几点 无须重启即可更新配置 自动的服务发现与负载均衡 与 docke ...

  2. ss_port_change - 一键修改ss配置与Centos7的Firewall策略脚本

    ss_port_change 修改ss配置与Centos7的Firewall策略脚本 注意是否需要修改config路径与ss服务的名 脚本的敏感字用了*代替 项目地址 Github 脚本 #!/bin ...

  3. 剑指 Offer 61. 扑克牌中的顺子 + 简单题 + 思维

    剑指 Offer 61. 扑克牌中的顺子 Offer_61 题目描述 java代码 package com.walegarrett.offer; /** * @Author WaleGarrett * ...

  4. SpringMVC-02 第一个SpringMVC程序

    SpringMVC-02 第一个SpringMVC程序 第一个SpringMVC程序 配置版 新建一个Moudle , springmvc-02-hello,确定依赖导入进去了 1.配置web.xml ...

  5. juc下Condition类解析

    在使用Lock之前,我们使用的最多的同步方式应该是synchronized关键字来实现同步方式了.配合Object的wait().notify()系列方法可以实现等待/通知模式. Condition接 ...

  6. Canal高可用架构部署

    一.前言 canal 是阿里的一款开源项目,纯 Java 开发.基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了 MySQL(也支持 mariaDB). canal 模拟 mys ...

  7. idea报错Selected Java version 11 is not supported by SDK (maximum 8)

    解决方案

  8. PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1019 General Palindromic Number (20 分) 凌宸1642 题目描述: A number that will ...

  9. 第3 章 : Kubernetes 核心概念

    Kubernetes 核心概念 本文整理自 CNCF 和阿里巴巴联合举办的云原生技术公开课的课时 3:Kubernetes 核心概念.本次课程中,阿里巴巴资深技术专家.CNCF 9个 TCO 之一 李 ...

  10. 什么是 Ansible - 使用 Ansible 进行配置管理

    [注]本文译自:https://www.edureka.co/blog/what-is-ansible/   Ansible 是一个开源的 IT 配置管理.部署和编排工具.它旨在为各种自动化挑战提供巨 ...