强制转换成字符串

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. python模块win32com中的early-bind与lazy-bind(以Autocad为例)

    1.什么是Lazy-bind模式,Early-bind模式? win32com中,Lazy-bind 模式指的是程序事先不知道对象的任何方法和属性,当对象属性,方法被调用时,程序才向对象发出一个询问( ...

  2. 后端程序员之路 42、Semaphore

    前面学习了Pthreads,了解了线程和线程同步,而同步这个东西,与信号量是密不可分的.下面讨论的主要是Pthreads里的semaphore.h,而不是sys/sem.h [Linux]线程同步之信 ...

  3. 部分rpm包总结描述

    acl-2.2.51-15.el7.x86_64 Commands for Manipulating POSIX(可移植操作系统接口 of unix) Access Control Lists.有ge ...

  4. Codeforces Round #558 B2. Cat Party (Hard Edition)

    题面: 传送门 题目描述: 题意:确定最大的x,使去除掉前x天的其中一天后,所有不同数字的数量相等.   题目分析: 可能是我太久没打cf了,水题都做不出来. 这道题的关键在于:要记录相同数量,的不同 ...

  5. 2019HDU多校第六场 6641 TDL

    一.题目 TDL 二.分析 题意就是找一个$n$满足题目中的公式,找不到就输出$-1$. 对于$${( f (n,m) - n )} \oplus {n} =k$$ 可以转换一下变成$( f (n,m ...

  6. Nginx配置静态文件服务从入门到精通

    作者:三十三重天 博客:http://www.zhouhuibo.club 通过学习和分享的过程,将自己工作中的问题和技术总结输出,希望菜鸟和老鸟都能通过自己的文章收获新的知识,并付诸实施. 引言 使 ...

  7. python-@函数装饰器

    例如@classmethod,@staticmethod的本质就是函数装饰器,其中,classmethod和staticmethod都是python的内置函数 使用@引用已有的函数后,可用于修饰其他函 ...

  8. MyBatis简单的CRUD操作

    Dao接口 package com.ttpfx.dao; import com.ttpfx.domain.User; import java.util.List; public interface U ...

  9. PTA 求链表的倒数第m个元素

    6-7 求链表的倒数第m个元素 (20 分)   请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>)个元素. 函数接口定义: ElementType ...

  10. PTA 冒泡排序

    6-4 冒泡排序 (10 分)   编程实现冒泡排序函数.void bubbleSort(int arr[], int n);.其中arr存放待排序的数据,n为数组长度(1≤n≤1000). 函数接口 ...