专栏首页AI科技时讯Python从入门到熟练(5): 数据类型进阶

Python从入门到熟练(5): 数据类型进阶

在python中,数据类型主要由以下几类组成:

  • 列表(list): [a, b]
  • 元组(tuple):(a, b, )
  • 集合(set): {a, b}
  • 字典(Dictonary): {a: ‘aaa’, b: ‘bbb’}

1. 列表

列表(List)

  • 列表是Python中使用最频繁的数据类型,专门用于存储一串信息
  • 列表是一种有序和可更改的集合。允许重复的元素
  • 列表使用[]定义,元素之间使用,分隔。例:[1,2, ...]
  • 列表的索引从位置0开始
    • 索引就是元素在列表中的位置编号,索引又可以被称为下标
    • 注意:从列表中取值时,如果超过索引范围,程序会报错
  • 虽然列表可以存储不同类型元素,但是曰常中一般存储相同类型的元素

如何使用列表

  • 列表[索引]: 从列表中取值,获取指定索引的元素
  • 列表[开始索引:结束索引:步长]:
    • 返回从开始索引到结束索引-1的列表,如果设置步长,按步长跳过元素
  • len(列表): 获取列表的长度
  • 元素 in 列表: 判断元素是否在列表中
  • 列表.count(元素): 返回指定元素在列表中的个数
  • 列表.index(元素): 返回指定元素在列表中第一次出现的索引,查找失败时报错
  • 列表.sort(): 从小到大排序,括号内增加reverse=True ,则是从大到小排序
  • 列表_reverse(): 逆序(反转)列表
  • 列表.clear(): 清空列表

Eg:

# 0 init list
L = [1, 2, 3, 4, 5, 7, 6]
# 1 index value
L[1]    # --> 2

# 2 step
L[2: 5: 2]   # --> [3, 5]

# 3 length
len(L)  # --> 6

# 4 in
6 in L  # ---> True
8 in L  # ---> False

# 5 count
L.count(1)  # ---> 1

# 6 index
L.index(2)  # ---> 1

# 7 sort
L.sort()  # ---> [1, 2, 3, 4, 5, 6, 7]  注意:会改变自己 返回None 

# 8 reverse
L.reverse()  # 由于第7步改变了自己, 这里变成[7, 6, 5, 4, 3, 2, 1] 会改变自己 返回None 

# 9. clear
L.clear()   # ---> []

列表特有的一些使用方法

L = [1, 2, 3, 4, 5]
  • 列表[索引]=元素:修改指定索引的元素,索引不存在会报错
    • L[2] = 7 L # ---> [1, 2, 7, 4, 5]
  • 列表 . append(元素):在列表的末尾追加元素
    • L.append(6) L # ---> [1, 2, 7, 4, 5, 6]
  • 列表 . insert(索引,元素):在指定索引位置插入元素,索引不存在时在末尾追加
    • L.insert(3, 9) L # ---> [1, 2, 7, 4, 9, 5, 6]
  • 列表.pop(索引):
    • 删除并返回指定索引的元素,未指定索引时删除最后一项,索引不存在时报错
    • L.pop(3) # 4, L 变成[1, 2, 7, 9, 5, 6] L.pop() # 6, L 变成[1, 2, 7, 9, 5]
  • 列表 . remove(元素):删除列表中第一个出现的指定元素,查找失败时报错
    • L.remove(2) # L 变成[1, 7, 9, 5]
  • del 列表[索引]: 删除指定索引位置的元素,索引不存在时报错
    • del L[3] # L 变成[1, 7, 9]
  • 列表l.extend(列表2): 将列表2拼接在列表1后
    • L.extend([8, 9, 10]) L # L 变成[1, 7, 9, 8, 9, 10], 等价于 L = L + [8, 9, 10]

2. 元组

元组(Tuple)

  • 元组是一种有序不可更改的集合, 允许重复的成员
  • 元组与列表的类似,不同之处在于元组元素不可修改
  • 元组使用()定义,元素之间使用,分隔。例:(a, b, …)
  • 元组中只包含一个元素时,可以省略(),只需要在元素后加逗号
    • init_tuple = 100, type(init_tuple) # ---> tuple # ---- 另外写法 init_tuple = (100, ) # 逗号一定要加
  • 注意:如果一个非元组类型的数据突然变成元组,检查是不是误加了逗号

集合与元组的通用方法

  • 元组[索引]:从元组中取值,获取指定索弓丨的元素
  • 元组[开始索引:结束索引:步长]:
    • 返回从开始索引到结束索引-1的元组,如果设置步长,按步长跳过元素
  • len(元组):获取元组的长度
  • 元素in元组:判断元素是否在元组中
  • 元组.count(元素):返回指定元素在元组中的个数
  • 元组.index(元素):返回指定元素在元组中第一次出现的索引,查找失败会报错

元组和列表之间的转换

  • list(元组):将元组转换成列表
  • tuple(列表): 将列表转换成元组

3. 集合

集合(Set)

  • 集合是一种无序无索引的序列。没有重复的元素
  • 集合会自动删除重复的元素,一般应用于去重交并差运算场景
  • 集合使用{}定义,元素之间使用,分隔。例:{a, b, …}

集合与列表的通用方法

  • len(集合):获取集合的长度
  • 元素in集合:判断元素是否在集合中
  • 集合.clear(): 清空集合

集合特有的使用方法

s = {1, 2, 3}

  • 集合.add(元素):将元素添加到集合中
    • s.add(5) # ---> {1, 2, 3, 5}
  • 集合1.update(集合2): 添加新的元素或集合到当前集合中
    • s.add{4, 5, 6} # ---> {1, 2, 3, 5, 4, 6}
  • 集合.remove(元素): 删除指定的元素,元素不存在时报错
    • s.remove(4) # ----> {1, 2, 3, 5, 6}
  • 集合1&集合2 : 交集,获得由集合1和集合2中都存在的元素组成的新集合
    • s & {3, 4, 5} # ---> {3, 5}
  • 集合1|集合2: 并集,获得集合1和集合2中所有元素的新集合
    • s | {8, 9, 10} # ---> {1, 2, 3, 5, 6, 8, 9, 10}
  • 集合1 - 集合2 : 差集,获得在集合1中存在但是在集合2中不存在的元素集合
    • s - {9, 10} # ---> {1, 2, 3, 5, 6, 8}

集合和列表之间的转换(也可以和元组进行转换,方式类似)

  • list(集合):将集合转换成列表
  • set(列表):将列表转换成集合

字典

字典(Dictionary)

  • 字典是除列表以外,在Python中最灵活的数据类型
  • 字典是一种无序可变的集合。没有重复的成员
  • 映射关系:拥有和对应的,称为键值对
  • 字典使用{}定义,键和值之间使用表示对应关系,不同键值对使用,分隔
    • 例 : {a: [b, c]}
  • 可以取任何数据类型,但只能使用字符串、数字或元组
  • 字 典在Python中通常用于存储描述一个物体的相关信息

字典与列表类似的用法

d = {a: [1, 2], b: [3, 4]}

  • 字典[键]: 通过键获取值, 键不存在时会报错
    • d[a] # ---> [1, 2]
  • len(字典):获取字典键值对的个数
    • len(d) # ---> 2
  • 字典.clear(): 清空字典
    • d.clear() # {}

字典的特殊使用方法

d = {a: [1, 2], b: [3, 4]}

  • 字典.get(键,默认值):通过键获取值,键不存在时返回默认值
    • d.get(a, 5) # ---> [1, 2]
  • 字典[键]=值:键不存在,新増键值对。键存在,修改键对应的值
    • d[a] = [7, 8] # ---> d {a:[7, 8], b: [3, 4]}
  • 字典.keys(): 返回字典所有的键组成的列表
    • d.keys() # ---> dict_keys([a, b])
  • 字典.values() :返回字典所有的值组成的列表
    • d.values() # ---> dict_values([[7, 8], [3, 4]])
  • 字典 . items():返回字典所有的键值对组成的列表
    • d.items() # ---> dict_items([(a, [7, 8]), (b, [3, 4])])
  • del字典[键]: 删除指定键的键值对
    • del d[a] # ---> d {b: [3, 4]}
  • 字典. pop( key) : 同 上
  • 字典1.update(字典2): 字典1合并字典2 , 对于在字典1中已经存在的键,使用字典2的值进行数据覆盖
    • d.update({c: [5, 6]}) # ----> d {b: [3, 4], c: [5, 6]}

本文分享自微信公众号 - AI科技时讯(aiblog_research),作者:海棠

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-09-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python学习笔记(3):配置虚拟开发环境

    有的时候开发不同的业务,所需要的环境不一样。一直在同一个环境中开发时候,不同的包版本升级可能会导致另外的业务不能正常工作。另外,有的github上的项目需要的开...

    用户3578099
  • 贝叶斯优化在XGBoost及随机森林中的使用

    XGBoost和Random-Forest(RF,随机森林)都属于集成学习(Ensemble Learning),集成学习的目的是通过结合多个基学习器的预测结果...

    用户3578099
  • AI新闻报

    1.【TV++】这位博士深掘电视用户流量 以内容识别技术跨屏互动 与江苏卫视促成 合作

    用户3578099
  • python遇见数据采集(持续更新) 原

    晓歌
  • SQL Server 远程连接出错~~~~~无法访问服务器

    异常处理汇总 ~ 修正果带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4599258.html ? ? 代理开一下 ...

    逸鹏
  • 异常:List-style-type属性失效

    异常处理汇总 ~ 修正果带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4599258.html 看重点: ? ? ...

    逸鹏
  • 责任·创新·奉献 — CCF与腾讯共同为何新贵院士、周巢尘院士颁发终身成就奖

    导语 1月19日,2018年度“中国计算机学会(CCF)颁奖大会”在北京隆重举行。本届颁奖会以“责任•创新•奉献”为主题,颁发了CCF终身成就奖、CCF夏培肃...

    腾讯高校合作
  • Bucket不为空,请检查该Bucket是否包含未删除的Object或者未成功的Multipart碎片

    异常处理汇总 ~ 修正果带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4599258.html 图示解决==>详细如...

    逸鹏
  • c/c++补完计划(二): c字符串复制

    SeanDepp
  • 杨老师课堂之jsp基础语法知识理论基础介绍

    分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

    杨校

扫码关注云+社区

领取腾讯云代金券