八、组合数据类型(列表、元组、集合、字典)

news2024/10/7 4:37:30

序列:存储多个值的连续空间,每个值对应一个编号————索引

包括:列表、元组、集合和字典

相加操作

s1="桂林山水"
s2='山水甲天下'
print(s1+s2)#直接相加得到新的字符串
print('_____________________________')
print((s1+s2)*5,sep="")#重复打印的乘法计算

in和not in操作:判断序列是否存在指定元素,返回值为bool值

s1="桂林山水"
s2='山水甲天下'

print("桂林"in s1)#判断“桂林”是否存在于s1中
print('北京'in s2)

m

s1="桂林山水"
s2='山水甲天下'
print(s1.index("林"))#查询指定元素在列表中的索引
print(s1.index('北京'))#如果元素在序列中不存在就会报错


s1="桂林山水"
s2='山水甲天下'
print(s1.count("桂林"))#统计指定元素在序列中出现的个数

一、列表

列表时可以改变的序列类型

创建:(1)直接创建listname=[A,B,C,..........]

           (2)使用内置函数list()创建,listname=list(序列)

删除:del listname

清除列表:listname.clear()

列表的枚举:enumrate()

s1="桂林山水"
s2='山水甲天下'
s3=s1+s2
for x,y in enumerate(s3,start=0):#枚举前面的变量为列表的索引(默认值为0),后面是遍历列表的元素,
    print(x,"---->",y)#默认的start的值为0

list=[1,2,3,4,5,6,7,8,9]#定义和初始化一个列表
for i in range(len(list)):#从0开始依次遍历
    print(list[i],end='')
for x in range(-9,0):#反向打印
    print(list[x])

切片:对列表进行操作得到另一列表

list=[1,2,3,4,5,6,7,8,9]#定义和初始化一个列表
for i in range(len(list)):#从0开始依次遍历
    print(list[i],end='')
print()
a=list[0:8:2]#list[start:end:step]获得一个新的列表从list[0]开始,list[8]结束但不包括
b=list[::-1]#从反向开始操作,等到回文
print(a)
print(b)

列表的特有操作

(1)listname.append(a)增加元素到列表末尾

listname=list([1,2,5,6,9])
listname.append(666)#增加666到列表末尾
print(listname)

(2)listname.insert(index,x)在列表第index位置增加元素x

listname=list([1,2,5,6,9])
listname.insert(0,999)
print(listname)

(3)listname.clear()清除列表中的所有元素

listname=list([1,2,5,6,9])
listname.clear()
print(listname)

(4)listname.pop(index)弹出索引的元素,并得到返回值

listname=list([1,2,5,6,9])
l=listname.pop(1)#用l接受弹出的元素
print(listname)
print(l)

(5)listname.remove(a)移除特定元素

listname=list([1,2,5,6,9])
listname.remove(9)
print(listname)

(6)listname.reverse()将列表中的元素翻转

listname=list([1,2,5,6,9888])
listname.reverse()
print(listname)

(7)listname.copy()拷贝所有元素,并生成一个新列表

listname=list([1,2,5,6,9888])
a=listname.copy()
print(listname)
print(a)

(8)列表的排序操作

listname=list([15,25,5,68,98])
listname.sort(reverse=False)#默认值为Falsse,表示顺序排序
print(listname)
listname.sort(reverse=True)#倒序排序
print(listname)
a=sorted(listname,reverse=False)#采用内置函数sorted()返回一个新的列表
print(a)

二、元组

元组是内置不可变序列,没有增删改操作

创建:(1)直接创建  tuplename=(a,b,c,.........)#如果元组只有一个元素,逗号不能省

            (2)使用内置函数tuple()        tuplename=tuple(序列)

删除:del  tuplename

tuplename=tuple('python')
print(tuplename)
print(type(tuplename))

元组支持切片操作,得到一个新的元组

tuplename=tuple('python')
t=tuplename[::-1]
print(t)

三、字典类型

字典:根据一个信息去查找利另一个信息的方式构成键值对

字典的储存方式是无序的(采用哈希存储),字典中的键必须唯一,不能重复;键也要求是不可变序列(字符串,整数,浮点数,元组)

创建:

d={'a':11,"b":55}#直接创建冒号连接
x=dict(a=100,b=888)#内置函数用等号连接
print(d)
print(x)
s=[1,2,3]
s1=['p','p,','x']
zip(s,s1)#生成一个映射对象
print(dict(zip(s,s1)))#将对象重新转换为字典类型

查找:根据键查找值

dictname={'小名':100,'小红':95,'小刚':98}#创建一个字典
print(dictname)
#两种查询方法
print(dictname["小名"])#使用d(key)方式查找
print(dictname.get("小刚"))#d.get(key)方式查找
print(dictname.get("小王"))#如果没有key时返回None,可以修改默认值:d.get(key,'不存在')
print(dictname["小王"])#没有key会

遍历:

dictname.itemes()返回字典中的所有键值对的列表

d={1:100,2:420,3:646}
for x,y in d.items():#当变量为两个时,分别输出键和值
    print(x,y)
for i in d.items():#当变量为一个时,说出键值对组成的元组
    print(i)

分别遍历字典的键和值:

dictname={'小名':100,'小红':95,'小刚':98}#创建一个字典
print(dictname)
a=dictname.items()#dictname.items()会返回一个键值对的迭代器
print(a)
for i,x in a:
    print(i,'---->',x)

字典的相关操作:

(1)添加元素:

dictname={'小名':100,'小红':95,'小刚':98}#创建一个字典
print(dictname)
dictname['小王']=97#dictname[key]=value表示添加一个键值对
a=dictname.items()#dictname.items()会返回一个键值对的迭代器
print(a)
for i,x in a:
    print(i,'---->',x)

(2)获得键值对

dictname={'小名':100,'小红':95,'小刚':98}#创建一个字典
#查看键
key=(dictname.keys())#获得所有键组成的迭代器
print(key)
value=dictname.values()
print(value)#获得所有值组成的迭代器

(3)删除dictname.pop(key)并返回对应的值value,dictname.popitme()随机删除元素

(4)清空dictname.clear()清空字典

四、集合

集合是一个无序不重复的元素序列(不能存储字典和列表没有)

创建:

直接创建:setname={a,b,c,.......}

函数创建:setname=set(可迭代对象)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1560969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux 查看磁盘信息:df与du命令详解

一、df 1.简介 df 是 disk free的缩写,从UNIX和类UNIX操作系统的早期开始,它就是UNIX和类UNIX操作系统的一部分。它被设计为一种工具,用于监视系统上已使用和可用的磁盘空间数量。 df 命令主要用于需要检查文件系统上已使用和可用的磁盘空…

Ubuntu安装Bazel(最简单的方法)

Ubuntu安装Bazel 文章目录 Ubuntu安装Bazel简介安装验证一下 简介 Bazel 是一款由 Google 开发的开源构建和测试工具,它使用了一种人类可读且高度可配置的语言来描述构建规则,使得构建和测试过程更加灵活和可维护。Bazel 支持多种编程语言,包…

ArcGIS Pro怎么进行挖填方计算

在工程实施之前,我们需要充分利用地形,结合实际因素,通过挖填方计算项目的标高,以达到合理控制成本的目的,这里为大家介绍一下ArcGIS Pro中挖填方计算的方法,希望能对你有所帮助。 数据来源 教程所使用的…

【Web自动化】Selenium的使用(一)

目录 关于自动化测试selenium工作机制 selenium的使用selenium中常用API定位元素按id定位按名称定位按类名定位按标签名定位按CSS选择器定位按XPath定位示例 操作测试对象等待sleep休眠隐式等待显示等待 打印信息浏览器操作键盘事件鼠标事件切换窗口截图关闭浏览器 欢迎阅读本文…

Windows部署VisualSVN服务端结合Cpolar实现公网访问内网管理界面

文章目录 前言1. VisualSVN安装与配置2. VisualSVN Server管理界面配置3. 安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4. 固定公网地址访问 前言 SVN 是 subversion 的缩写,是一个开放源代码的版本控制系统…

Oracle利用BBED恢复崩溃实例(ORA-01092,ORA-00704,ORA-01578)

BBED修复数据损坏引起的数据库崩溃(ORA-01092,ORA-00704,ORA-01578)(2021年某苏州国企的案例) 1.Symptom 用户一个边缘系统出现数据文件损坏,且没有备份,数据库无法启动 报错如下,发现是oracle bootstra…

安卓Termux系统安装MariaDB结合内网穿透实现公网连接本地数据库

文章目录 前言1.安装MariaDB2.安装cpolar内网穿透工具3. 创建安全隧道映射mysql4. 公网远程连接5. 固定远程连接地址 前言 Android作为移动设备,尽管最初并非设计为服务器,但是随着技术的进步我们可以将Android配置为生产力工具,变成一个随身…

【python】pip清华大学镜像

1、修改pip源为清华源: pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple2、结果是自动给我创建了一个文件: 3、打开这个文件所在的文件夹: 4、打开文件: 5、如果不想指定清华的,就删掉…

TransmittableThreadLocal 问题杂记

0、前言 TransmittableThreadLocal,简称 TTL,是阿里巴巴开源的一个Java库,它能够实现ThreadLocal在多线程间的值传递,适用于使用线程池、异步调用等需要线程切换的场景,解决了ThreadLocal在使用父子线程、线程池时不能…

【SpringBoot从入门到精通】01_SpringBoot概述

一、Spring与SpringBoot 1.1 Spring Spring 是一款目前主流的 Java EE 轻量级开源框架,是 Java 世界最为成功的框架之一。Spring 由“Spring 之父”Rod Johnson(罗宾约翰逊) 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。 广义…

基于ssm的平面设计课程在线学习平台系统(java项目+文档+源码)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的平面设计课程在线学习平台系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 前台功能&#xf…

MySql 常用的聚合函数总结

MySQL 中的聚合函数用于对一组数据进行计算,并返回单个值作为结果。以下是常用的 MySQL 聚合函数的总结及其功能描述: 1. COUNT() 功能:用于计算指定列或表中的行数。 语法: COUNT(*) COUNT(expression) 示例: SELECT …

吴恩达深度学习笔记:浅层神经网络(Shallow neural networks)3.9-3.11

目录 第一门课:神经网络和深度学习 (Neural Networks and Deep Learning)第三周:浅层神经网络(Shallow neural networks)3.9 神 经 网 络 的 梯 度 下 降 ( Gradient descent for neural networks)3.10(选修&#xff0…

MATLAB多级分组绘图及图例等细节处理 ; MATLAB画图横轴时间纵轴数值按照不同sensorCode分组画不同sensorCode的曲线

平时研究需要大量的绘图Excel有时候又臃肿且麻烦 尤其是当处理大量数据时可能会拖死Windows 示例代码及数据量展示 因为数据量是万级别的折线图也变成"柱状图"了, 不过还能看出大致趋势! 横轴是时间纵轴是传感器数值图例是传感器所在深度 % data readtable(C:\U…

“美国债务螺旋上升,每百天膨胀万亿”!华尔街:投入比特币是明智之举,美元早晚垮台?

​ 前不久,黄金和比特币价格的双双逼近历史高位,再度吸引了不少金融市场参与者的关注。虽然这两类资产大涨的背后,有着诸如比特币减半临近、地缘局势引发避险等各自的原因,但也有一些业内人士提到了美国政府债务规模激增等无法回…

如何使用 ArcGIS Pro 自动矢量化水系

对于某些要素颜色统一的地图,比如电子地图,可以通过图像识别技术将其自动矢量化,这里为大家介绍一下 ArcGIS Pro 自动矢量化水系的方法,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的电子地图数据&#…

【C++】list介绍

个人主页 : zxctscl 如有转载请先通知 文章目录 1. list介绍2. list的构造3. ist iterator的使用4. capacity5. element access6. modifiers7. 迭代器失效8. Operations8.1 reverse8.2 sort8.3 unique8.4 splice 1. list介绍 list是可以在常数范围内在任意位置进行插…

Linux之 线程池 | 单例模式的线程安全问题 | 其他锁

目录 一、线程池 1、线程池 2、线程池代码 3、线程池的应用场景 二、单例模式的线程安全问题 1、线程池的单例模式 2、线程安全问题 三、其他锁 一、线程池 1、线程池 线程池是一种线程使用模式。线程池里面可以维护一些线程。 为什么要有线程池? 因为在…

代码随想录算法训练营第二十五天| 216.组合总和III,17.电话号码的字母组合

题目与题解 216.组合总和III 题目链接:216.组合总和III 代码随想录题解:216.组合总和III 视频讲解:和组合问题有啥区别?回溯算法如何剪枝?| LeetCode:216.组合总和III_哔哩哔哩_bilibili 解题思路&#xf…

超云信创新品发布,引领国产化AI算力新高度

在当前数字化转型的大潮中,算力作为新质生产力的重要动力引擎,对推动经济社会发展起着关键作用。尤其在人工智能领域,随着高性能、安全可控的AI算力需求持续攀升,国产化服务器的研发与应用显得尤为迫切。 作为国内专业的算力基础…