python -- 结构数据类型(列表、元组、集合、字典)
一、列表
列表表示一组有序的元素,这些元素可以是数字、字符串,也可以是另一个列表。
# ----------------------------------------
# 列表(list):一组有序的元素
# ----------------------------------------
# 定义一个空的列表
s = []
# 定义一个全是数字的成绩列表
score = [90, 92, 88, 79, 95, 82]
# 可以通过索引值来访问列表中的元素,从左到右,起始值为0,最后一个元素为n-1
first_one = score[0]
# 也可以从右到左通过一个负数索引值进行访问,倒数第一个元素为-1,最后一个元素为-n
last_one = score[-1]
# 修改元素的值
score[-1] = 80
print(score)
# 列表中的元素可以是不同的数据类型
student_info = ['1001', '张晓晓', '女', 12, [86, 88, 92]]
# 使用切片打印学生基本信息
print("学生基本信息:", student_info[1:4])
# + 将运算符两侧的列表组合在一起
grade = ['七年级']
student_info = grade + student_info
print(student_info)
# 同理也可以用+=
student_info += ['广东省', '广州市']
print(student_info)
# append() 在列表尾部追加新的元素(一次只能追加一个元素)
student_info.append('番禺区')
print(student_info)
# extend() 在列表尾部追加另一个列表(追加的不是列表,而是列表中的元素)
address = ['南村镇', '东环街']
student_info.extend(address)
print(student_info)
# insert(x, y) 向列表中的x位置插入数据y
student_info.insert(-1, "同乐路") #由于东环街是-1,对应同乐路,则不是添加到末尾
student_info.insert(len(student_info), "同乐路") #把同乐路加入到末尾
print(student_info)
# * 将列表中的元素重复n次,并且拼接成一个列表
scores = [90, 100] * 5
print(scores)
# 使用in和not in判断某个元素是否存在于列表中
print("100 in scores:", 100 in scores)
print("100 not in scores:", 100 not in scores)
# len() 返回列表的长度
score = [90, 92, 88, 79, 95, 90, 82]
print("score列表中有%d个元素" % len(score))
# max() 返回列表元素中的最大值(元素的数据类型必须一致,否则会出错)
print("最高分是:", max(score))
# min() 返回列表元素中的最小值
print("最低分为:", min(score))
# sum() 返回列表中所有元素的和
print("总分:", sum(score))
# count(x) 统计列表中相同元素值x出现的次数
print("90分有%d个" % score.count(90))
# sort() 将列表中的元素进行排序,默认为升序(需要是统一的单一数据类型)
score.sort()
print("升序排列:", score)
score.sort(reverse=True)
print("降序排列:", score)
# index(x) 获得指定元素x第一次在列表中的位置(索引值)
index = score.index(90)
print("90分的排名为:", index + 1)
# pop(index) 删除列表中索引值为index的元素,默认删除最后一个元素
score.pop()
print("删除一个最低分:", score)
# reverse() 将列表中的元素颠倒排列
score.reverse()
print("将列表中的元素进行颠倒:", score)
# remove(value) 将列表中元素值为value的项删除,一次只删除一个元素
score.remove(90)
print("删除90分:", score)
# clear() 清空列表
score.clear()
print(score)
score = [90, 92, 88, 79, 95, 90, 82]
# del 删除指定位置的元素,并且可以使用切片的方式进行删除
del score[2]
print(score)
del score[0:3]
print(score)
del score
print(score)
二、元组
元组也是一组有序的元素,一旦定义,就不能更改了。
# ----------------------------------------
# 元组(tuple):一组有序的元素。定义后元素不可修改
# ----------------------------------------
# 创建只有一个元素元组,必须在元素之后加上逗号
# t = ()
# one = (100)
only_one = (100,)
# + 对元组进行拼接,生成一个新的元组
info1 = '1001', '张晓晓'
info2 = ('女', '初一')
print("info1+info2:", info1 + info2)
# * 重复多次
print("info1*3:", info1 * 3)
# 使用in和not in判断某个元素是否存在于元组中
print("张晓晓 in info1:", '张晓晓' in info1)
print("张晓晓 not in info1:", '张晓晓' not in info1)
student_info = ('1001', '张晓晓', '女', '初一', 12, '广州')
# len() 返回元组的长度(元组中元素的个数)
print("元组的长度:", len(student_info))
# 同样可以通过索引和切片的方式访问元组
print(student_info[1:])
tuple1 = (88, 93, 76, 90)
# max() 返回元组中元素的最大值(元组中的数据类型必须一致)
print("最大值为:", max(tuple1))
# min() 返回元组中元素的最小值(数据类型必须一致)
print("最小值为:", min(tuple1))
# 将列表转换为元组
list2 = [100, 200, 300, 200, 400]
tuple2 = tuple(list2)
print("将列表转换为元组:", tuple2)
# sum() 返回元组中所有元素的和
print("总计:", sum(tuple2))
# count() 统计指定元素在元组中出现的次数
print("200出现的次数:", tuple2.count(200))
# index() 返回指定元素第一次在元组中出现的索引值
print("200第一次出现的位置:", tuple2.index(200))
# 将元组转换为列表
list3 = list(student_info)
print("将元组转换为列表:", list3)
# 元组中的元素值不允许删除,只能使用del语句删除整个元组
del student_info
三、集合
集合是一个无序的不重复的元素序列
# ----------------------------------------
# 集合(set):一个无序的不重复元素序列
# ----------------------------------------
# 创建一个空集合,必须使用set(),不能使用{}
set1 = set()
# 集合会自动去掉重复数据
cities = {'北京', '上海', '广州', '深圳', '海南', '广州'}
print(cities)
# 可以先创建一个列表,然后使用set函数将列表转化为集合
list2 = [100, 200, 300, 400, 300]
set2 = set(list2)
print(set2)
# 通过一个字符串来创建字符集合
set3 = set("Hello")
print(set3)
# 使用in和not in判断某个元素是否存在于集合中
print("200 in set2:", 200 in set2)
print("00 not in set2:", 200 not in set2)
a = {100, 200, 300}
b = {300, 400}
# a-b:差集(返回一个新的集合,包含a中有但b中没有的元素)
print("a-b:", a - b)
print(a.difference(b))
# a|b:并集(返回一个新的集合,包含a和b中的每一个元素)
print("a|b:", a | b)
print(a.union(b))
# a&b: 交集(返回一个新的集合,包含a和b中的公共元素)
print("a&b:", a & b)
print(a.intersection(b))
# a^b: 对称差集(返回一个新的集合,包含没有同时出现在a和b中的元素)
print("a^b:", a ^ b)
print(a.symmetric_difference(b))
# add() 往集合中添加一个元素
a.add(400)
print("add:", a)
# update() 更新集合中的元素。可以往集合中添加单个元素、列表、元组等
a.update([500, 600])
print("update:", a)
# a<=b:判断a是否是b的子集(检查a中的每一个元素是否都在b中)
print("a是b的子集:", a <= b)
# a>=b: 判断a是否是b的父集(检查b中的每一个元素是否都在a中)
print("a是b的父集:", a >= b)
# remove(x) 将元素x从集合中移除,如果元素不存在会报错
a.remove(600)
print("remove result:", a)
# discard(x) 也是将元素x从集合中移除,当元素不存在时不会报错
a.discard(500)
print("discard:", a)
# pop() 随机删除集合中的一个元素
a.pop()
print("pop:", a)
# len() 计算集合中元素的个数
print("集合中的元素个数:", len(a))
# clear() 清空集合
a.clear()
四、字典
字典是一种可变容器模型,可以存储任意类型的对象,由键-值对组成。
# ----------------------------------------------------------
# 字典(dict):一种可变容器模型,可以存储任意类型的对象。由键-值对组成
# ----------------------------------------------------------
# 键必须是唯一且不可改变的
dic = {1: '一季度', '2': '二季度'}
# 不能通过索引访问,只能通过键进行访问
print(dic['2'])
dic = {1: '一季度', '2': '二季度', '2': '三季度'}
print(dic)
dic['2'] = '二季度' # 修改元素的值
dic['3'] = '三季度' # 增加新的键值对
print(dic)
del dic['3'] # 删除字典中的元素
print(dic)
# len() 计算字典元素的个数,即键值的总数
print("字典长度为:", len(dic))
# str() 将字典的元素转化为可打印的字符串形式
print(str(dic))
# copy() 复制字典(浅拷贝)
dic1 = dic.copy()
print("dic1:", dic1)
# clear() 清除字典中的所有元素
dic.clear()
print("dic:", dic)
dic3 = {'一季度': 10000, '二季度': 12000, '三季度': 18000}
# get(key[, value]) 返回指定键的值。如果指定的键不存在,返回value
print("一季度的销量为:", dic3.get('一季度'))
print("四季度的销量为:", dic3.get('四季度'))
print("四季度的销量为:", dic3.get('四季度', '未统计'))
# setdefault(k[, v]) 如果k存在,就返回其值;否则返回v,并将新的元素添加到字典中
print(dic3.setdefault('一季度'))
print(dic3.setdefault('四季度', 17000))
# 使用in和not in检测键(key)是否存在于字典中
print("一季度存在于字典中:", '一季度' in dic3)
print("四季度不存在于字典中:", '四季度' not in dic3)
# items() 使用字典中的元素创建一个由元组对象组成的列表(一个元组对应一个键-值对)
print(dic3.items())
# keys() 使用字典中的键创建一个列表
print(dic3.keys())
# values() 使用字典中的值创建一个列表
print(dic3.values())
# dic1.update(dic2) 将字典dic2的键/值对更新到dic1中
dic4 = {'一月份': 3500, '二月份': 3800}
dic3.update(dic4)
print(dic3)
# pop() 删除字典中指定key对应的值,并且返回被删除的值
print(dic3.pop('一月份'))
# popitem() 删除字典中的最后一元素,并返回这个元素的键值
print(dic3.popitem())
python -- 结构数据类型(列表、元组、集合、字典)的更多相关文章
- python基础(五)列表,元组,集合
列表 在python中是由数个有序的元素组成的数据结构,每一个元素对应一个index索引来隐式标注元素在列表中的位置.是python中最常用的一种数据类型.需要注意的是列表中可以有重复相同的数据. 列 ...
- 【python基础】之元组 集合 字典
元组 元组:元组和列表类似.但是元组中的元素是固定的(不能给一个元组添加,删除和替换元素以及重新排序) 1.创建元组 t1 = () #创建一个空元组 t2 = (1, 2, 3) t3 = tupl ...
- python学习之列表元组,字典
list:元素性质可以不一致,元素还可以是list,可类似数组方法进行索引(也可以用负数索引,-1表示最后一个),可用.append('')进行动态增加,可用pop()删除最后一个或者pop(i)删除 ...
- Python基本数据类型--列表、元组、字典、集合
一.Python基本数据类型--列表(List) 1.定义:[ ]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素. 2.列表的创建: # 方式一 list1 = ['name','ag ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍
目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...
- Python摸爬滚打之day04----基本数据类型(列表,元组)
1.列表 列表是可变的, 有序的数据类型,列表是按照添加顺序来保存的,可以存放各种数据类型. 1.1 列表的切片(同字符串) 1.2 列表的增删改查 注意: 列表是可以直接在列表上面进行操 ...
- Python—列表元组和字典
Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...
- python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍
目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...
- python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍
目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...
随机推荐
- VB 老旧版本维护系列---迷之集合- dataTable
迷之集合- dataTable '定义一个datatable,并声明一个空对象 Dim data As DataTable = New DataTable() '获取行数 Dim rows As In ...
- 面试官:说一下JVM常用垃圾回收器的特点、优劣势、使用场景和参数设置
今天去看牙医,他问我年级轻轻牙齿怎么磨损这么严重?我说,没有人点赞的这些年,我都是咬着牙过来的. Java中的垃圾回收器几乎是面试中的必考点,无论是面试初级,中级还是高级,总免不了要问一问垃圾回收器的 ...
- 开发掉坑(二)前端静态资源 Uncaught SyntaxError: Unexpected token <
某天,有同学反馈后台管理系统出现静态资源无法加载的问题. 复现如下: 进入首页. 点击侧边栏某个子功能,静态资源可正常访问到. 等待10分钟左右,点击侧边栏其他子功能,无法访问到静态资源. 查看控制台 ...
- fail2ban防护ssh免于暴力破解
一.背景 开放到公网的主机无时无刻不在遭受攻击,其中ssh暴力破解频率最高,会有无数机器不分日夜地搜索公网上的猎物,然后进行弱密码尝试 如果你的公网机器恰巧设的弱密码,估计刚装上系统,没过几小时别人就 ...
- Springboot中以配置类方式自定义Mybatis的配置规则(如开启驼峰映射等)
什么是自定义Mybatis的配置规则? 答:即原来在mybatis配置文件中中我们配置到<settings>标签中的内容,如下第6-10行内容: 1 <?xml version=&q ...
- 【零基础学深度学习】动手学深度学习2.0--tensorboard可视化工具简单使用
1 引言 老师让我将线性回归训练得出的loss值进行可视化,于是我使用了tensorboard将其应用到Pytorch中,用于Pytorch的可视化. 2 环境安装 本教程代码环境依赖: python ...
- Qt自定义信号槽的使用浅析+实例
1. Qt中自定义信号槽的使用 Qt框架提供的信号槽在某些特定场景下是无法满足我们的项目需求的,因此我们还设计自己需要的的信号和槽,使用connect()对自定义的信号槽进行连接. 如果想要使用自定义 ...
- 【NX二次开发】Block UI 指定方位
属性说明 属性 类型 描述 常规 BlockID String 控件ID Enable Logical 是否可操作 Group ...
- SpringCloud(1)生态与简绍
一:微服务架构简绍学习目标 1.技术架构的演变,怎么一步步到微服务的:2.什么是微服务,优点与缺点 :3.SOA(面向服务)与MicroServices(微服务)的区别 :4.Dubbo 与Spri ...
- 技术解密 |阿里云多媒体 AI 团队拿下 CVPR2021 5 冠 1 亚成绩的技术分享
6 月 19-25 日,备受全球瞩目的国际顶级视觉会议 CVPR2021(Computer Vision and Pattern Recognition,即国际机器视觉与模式识别)在线上举行,但依然人 ...