组合数据类型包含一组数据且作为单一管理结构的数据类型。python的组合数据类型有三大类七小类。

(1)集合:无序、非一致性、无索引;分为可变集合set、不可变集合frozenset。

(2)序列:有序、非一致性/一致性、序号索引;分为元组、列表、字符串、字节串。

(3)字典:无序、非一致性、自定义索引:字典。

组合数据类型又可以分为可变类型和不可变类型:

(1)可变类型:值可以改变的类型,例如:列表、字典等。

(2)不可变类型:值不可变,例如有数值类型、字符串、字节串、元组等。

1、各种组合类型的创建

【集合的创建】

可变集合的创建:大括号{}和set函数。不可变集合的创建frozenset({})形式。

【元组的创建】

元组类型的常见可以使用:逗号,或者小括号();以及使用tuple()方法来创建。注意元组类型创建后一般不能被修改的序列类型

【列表创建】

列表的创建使用:[]或者list()函数创建。注意列表类型创建后可以随时被修改的

【字典的创建】

字典的创建:使用大括号{}或者dict()函数创建,空大括号{}创建字典类型,而不是集合类型

2、列表使用

#####################python中列表的使用##########################
lt=[] #定义空列表
lt +=[1,2,3,4,5,6,7,8] #向lt列表中新增5个元素
lt[2]=6 #修改列表中第2个索引,索引下表从0开始
print(lt)
lt.insert(2,7) #向lt列表第2个位置增减一个元素
print(lt)
del lt[1] #从lt中第1个位置删除一个元素
del lt[1:4] #删除lt列表中的第1-3位置元素
print(0 in lt) #判断列表lt中是否包含数字0,返回值为False
lt.append(0) #向lt列表中新增数字0
print(lt.index(0)) #lt列表中数字0的索引是多少
print(len(lt)) #lt列表的长度
print(max(lt)) #lt列表中最大的元素
print(lt.clear()) #清空lt列表,返回值为None

【列表类型的应用场景说明】列表使用与组织数据。
(1)列表用来组织数据,非常灵活,它是最常用的组合数据类型;
(2)列表可以用于表示一组有序数据或一组顺序无关数据,进而操作他们;
(3)列表将用于表达一二维数据;
(4)列表计算性能并不高,对于大规模数据,建议采用第三方数据结果,如ndarray。

【列表中append()、extend()、+、+=操作的区别】

  1. append()方法是向列表尾部追加一个新元素,列表只占用一个索引位置,在原有列表上增加;
  2. extend()方法向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加;
  3. +加号,直接使用加号+看上去与用extend()效果一样,但是实际上生成了一个新的列表存在这两个列表的和,只能用在列表相加上;
  4.  +=操作效果与extend()一样,向原有列表追加一个新元素,在原有列表上增加。

5、身份运算符

省份运算符用于比较两个对象的内存地址是否一致,也就是是否对同一个对象的引用。

在python中针对None比较时,建议使用is判断:

(1)is运算符是判断两个标识符是不是引用同一个对象;x is y,类似id(x)==id(y)

(2)is not运算符是判断两个标识符是不是引用不同对象;x is  not y,类似id(x)!=id(y)

6、排序

import operator
# operator的itemgetter(0)表示键key,operator的itemgetter(1)表示值value
if __name__ == '__main__':#1、对字典进行排序my_dict = {"a":1,"d":-2,"b":3,"e":2,"c":0,"f":1}# 1.1对字典的key判刑sort_dict_key = sorted(my_dict)print(sort_dict_key) #['a', 'b', 'c', 'd', 'e', 'f']#1.2 对字典的值进行排序sort_dict_value = sorted(my_dict.values(),reverse=True)print(sort_dict_value) # [3, 2, 1, 1, 0, -2]#1.3 按照字典key进行降序sort_dict = sorted(my_dict.items(),key=lambda x:x[0],reverse=True)print(sort_dict) #[('f', 1), ('e', 2), ('d', -2), ('c', 0), ('b', 3), ('a', 1)]#operator.itemgetter(1)字典的值value,对值进行升序sort_dict2 = sorted(my_dict.items(),key=operator.itemgetter(1),reverse=False)print(sort_dict2)# [('d', -2), ('c', 0), ('a', 1), ('f', 1), ('e', 2), ('b', 3)]# 列表中的字典排序all_data=[{"city":"北京","min_temp":0},{"city": "天津", "min_temp": -8},{"city": "石家庄", "min_temp": 3},]   # 默认reverse值为False,当reverse=True为降序,sort_result=sorted(all_data,key=operator.itemgetter('min_temp'),reverse=True)print(sort_result)
all_data =[]for table in tables:trs = table.find_all('tr')[2:]for index,tr in enumerate(trs):tds= tr.find_all('td')city_td = tds[0]if index==0:city_td=tds[1]city = list(city_td.stripped_strings)[0]# 取出最低气温temp_td = tds[-2]min_temp =list(temp_td.stripped_strings)[0]all_data.append({"city":city,"min_temp":int(min_temp)}) # 把最低气温进行排序是为了排序all_data.sort(key=lambda x:x["min_temp"],reverse=False) # reverse=False表示最低气温按照升序

python入门篇1:组合数据类型相关推荐

  1. Python入门篇-高级数据类型集合(set)和字典(dict)

    Python入门篇-高级数据类型集合(set)和字典(dict) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.集合(set) 1>.集合的特点 约定set 翻译为集合c ...

  2. Python入门篇-匿名函数

    Python入门篇-匿名函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.匿名函数概述 1>.什么是匿名函数 匿名,即没有名字 匿名函数,即没有名字的函数 2>. ...

  3. Python入门篇-数据结构堆排序Heap Sort

    Python入门篇-数据结构堆排序Heap Sort 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.堆Heap 堆是一个完全二叉树每个非叶子结点都要大于或者等于其左右孩子结点的 ...

  4. Python入门篇-functools

    Python入门篇-functools 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.partial方法 1>.partial概述 偏函数,把函数部分的参数固定下来,相当 ...

  5. Python入门篇-生成器函数

    Python入门篇-生成器函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.生成器概述 1>.生成器generator 生成器指的是生成器对象,可以由生成器表达式得到, ...

  6. 从零开始学Python(六) 组合数据类型

    从零开始学Python(六) 组合数据类型 思维导图: 一.集合类型及操作 1.集合类型定义 集合是多个元素的无序组合: ①集合类型与数学中的集合概念一致 ②集合元素之间无序,每个元素唯一,不存在相同 ...

  7. 编程小白学python知乎周刊_在知乎上学 Python - 入门篇

    写在前面 本文对知乎上关于Python入门方面的问答.文章.专栏做了一定的收集和整理,希望对各位Python学习者能有帮助,至少可以节省大家一点时间. 这一篇主要针对的是零基础或初学Python,包括 ...

  8. Python Revisited Day 03 (组合数据类型)

    文章目录 第三章 组合数据类型 3.1 序列类型 3.1.1 元组 3.1.2 命名的元组 (collections.nametuple()) 3.1.3 列表 (查询有关函数点这) 3.1.4 列表 ...

  9. 网络工程师的Python之路--Python入门篇01

    前言 本文所有内容基于CentOS 7上的Python 2.7.5做演示,这里解释下为什么不用最新的Python 3 ,Python 3.x是最新的Python版本,将来终会淘汰Python 2成为最 ...

最新文章

  1. Mybatis自定义排序
  2. cPanel下安装GodaddySSL教程
  3. MATLAB实战系列(三十七)-MATLAB基于PQ解耦风电场并网潮流计算
  4. HttpURLConnection 发送post请求。并将结果以JSONObject对象返回的轮子
  5. spring boot集成oss
  6. 全球最伟大50名商业领袖,任正非和马云未入选,中国只有一人上榜
  7. 项目中配置Babel转码器的详细教程
  8. python+pyqt5实现24点小游戏
  9. openvswitch安装与使用
  10. 微信小程序input安卓手机获取焦点时候上移
  11. 【论文解读】情感-原因关系挖掘 —— ACL2019杰出论文
  12. windows 64位sed.exe_32位,64位,x86,x64到底是什么关系?差距居然这么大
  13. jdk5.0下支持JSR-223的方法
  14. java 将ofd转为pdf(代码简单)
  15. no bgp default ipv4-unicast
  16. CCIE-MPLS路由传递
  17. ECLIPSE中添加TPTP插件
  18. python哪些城市好发展_我用Python爬了各大城市的旅游数据后发现,最好玩的还是这里......
  19. frp内网穿透入门级木马上线实践
  20. 推荐一款适用于vue的h5富文本编辑器

热门文章

  1. 2021,自动化与工具化的云迁移如何成为必须?
  2. deb 安装_Ubuntu下安装软件的几种方法
  3. 原生js模仿网易云音乐首页轮播图
  4. Bag of Freebies(免费包)和Bag-of-Specials(特赠包)
  5. 算法与数据结构——巨人网络笔试题
  6. 研究生学位论文被评为优秀了!
  7. Qt项目实战:MP3音乐播放器
  8. 复指数与高斯函数乘积的傅里叶变换_希尔伯特变换:将实数信号变换成解析信号?节省带宽,提升效率...
  9. 《多元统计分析与R语言》实验1【主成分分析】
  10. 花花与三猫Catlive(hpu)