python3中列表、元组、字典的增删改查说明详解
python基础中的列表、元组、字典属于python中内置的序列数据结构。其中序列可以进行的操作包括索引、截取(切片)、加、乘、成员检查等。
1、列表
列表(list)是最常用的python数据类型之一,列表的数据项不需要具有相同的类型。创建一个列表,只需要把用逗号分隔开的不同数据项使用方括号[]括起来即可。创建列表实例如下:
list1 = ["test","测试",,];
list2 = [1,2,3,4,5,6];
list3 = ["a","b","c","d"];
列表的索引是从0开始,列表可以进行截取(切片)、组合。
一、访问列表的元素
访问的方式可以是通过下标索引,也可以是以方括号的形式截取字符。
1 list1 = ["test","测试",,,];
2 list2 = [1,2,3,4,5,6];
3 print("list1[0]:",list[0])
4 print("list2[1:5]:",list2[1:5])
以上实例输出的结果为:
list1[0]: test
list2[1:5]: [2,3,4,5]
二、增加列表中的元素
使用append()方法在列表的末尾增加新的元素。
list1 = ["test","测试",,,];
list1.append(2020)
print(list)
以上实例输出的结果为:
["test","测试",2018,2019,2020]
三、修改列表中的元素
实例如下:
list1 = ["test","测试",2018,2019,];
print("修改前的列表元素:",list1)
list1[2] = 2017; #将列表中索引为2的元素修改为2017
print("修改后的列表元素:",list2)
以上实例执行后的结果为 :
修改前的列表元素:["test","测试",2018,2019,]
修改后的列表元素:["test","测试",2017,2019,]
四、删除列表中的元素
方法一:使用del语句来删除列表的元素,实例如下:
list1 = ["test","测试",2018,2019,];
print(list1)
del list1[2]
print("删除索引为2的元素后的列表:",list1)
以上实例执行后展示的结果为:
["test","测试",2018,2019,]
["test","测试",2019,]
方法二:使用remove()方法来删除列表中的元素,实例如下:
list1 = ["test","测试",2018,2019,];
list1.remove(2018)
list1.remove("测试")
print("删除部分元素后的列表:"list1)
以上实例执行后展示的结果为:
["test",2019,]
方法三:使用pop()方法来删除列表中的指定位置的元素,无参数时默认删除最后一个元素,实例如下:
list1 = ["test","测试",2018,2019,];
list1.pop(1) #删除位置1的元素 测试
list1.remove() #删除最后一个元素 2019
print("删除部分元素后的列表:",list1)
以上实例执行后展示的结果为:
["test",2018]
五、列表的其他操作符
列表对“+”和“*”的操作符与字符串相似。+号用于组合列表,*用于重复列表。其操作符如下:
python表达式 | 描述 | 结果 |
len([1,2,3]) | 长度 | 3 |
[1,2,3]+[4,5,6] | 组合 | [1,2,3,4,5,6] |
["ha"]*4 | 重复 | ["ha","ha","ha","ha"] |
3 in [1,2,3] | 元素是否在列表中 | True |
for x in [1,2,3]:print(x,end="") | 迭代 | 1 2 3 |
六、python列表内置函数和方法
方法 | 功能 |
list.append(obj) | 在列表的末尾添加新的元素 |
list.count(obj) | 统计某个元素在列表中出现的次数 |
list.extend(seq) | 在列表末尾一次性追加另一个序列中的多个值 |
list.index(obj) | 从列表中找出某个值第一个匹配项的索引位置 |
list.insert(index,obj) | 将元素插入到列表中的指定位置 |
list.pop(index) | 移除列表中的指定位置的元素,不指定位置时默认移除最后一个 |
list.remove(obj) | 移除列表中某个值的第一个匹配项 |
list.reverse() | 反转列表中的元素的位置 |
list.sort([func]) | 对原列表进行排序 |
len(list) | 内置函数,列表中元素的个数 |
max(list) | 内置函数,返回列表中元素的最大值 |
min(list) | 内置函数,返回列表中元素的最小值 |
list(seq) | 内置函数,将元组转换成列表 |
2、元组
元组的与列表类似 ,但是也有不同,不同之处在于元组中的元素不能修改。元组使用小括号(),列表使用方括号[],元组中的元素类型也是可以不同的。
一、创建元组
可以通过直接在括号中添加元素,并使用逗号隔开即可。实例如下:
tup1 = ("test","测试",2018,2019)
tup2 = (1,2,3,4,5,6)
tup3 = "a","b","c","d"
tup4 = () #创建空元组
当元组中只有一个元素时需要在元素后边添加逗号,实例如下:
tup5 = (20,)
在元组中下标索引同样是从0开始,可以进行截取,组合等操作。
二、访问元组
可以通过下标索引来访问元组中的元素,实例如下:
tup1 = ("test","测试",2018,2019)
tup2 = (1,2,3,4,5,6)
print("tup1[0]:",tup1[0]) #输出元组中第一个元素
print("tup2[1:5]:",tup2[1:5]) #切片,输出从第二个元素开始到第5个元素
print("tup2[2:]:",tup2[2:]) #切片,输出从第三个元素开始的以后的所有元素
print(tup2 * 2) #输出元组元素两次
以上实例输出的结果展示如下:
tup1[0]: 中国
tup2[1:5]: (2,3,4,5)
(3,4,5,6)
(1,2,3,4,5,6,1,2,3,4,5,6)
三、连接元组
元组是不能直接修改,但是可以创建新元组,实例如下:
tup1 = (10,20,30)
tup2 = (100,200)
tup3 = tup1 + tup2
print(tup3)
以上实例输出的结果展示如下:
(10,20,30,100,200)
四、删除元组
元组中的元素不允许被直接删除,但是可以通过del语句来删除整个元组,实例如下:
tup1 = ("test","测试",2018,2019)
print(tup1)
del tup1
print("删除元组tup1后的结果为:",tup1)
以上实例输出的结果展示如下:
("test","测试",2018,2019)
删除元组tup1后的结果为:NameError:name "tup1" is not defined
由上可见,删除元组后在输出会报错。根据报错信息看出,名字为tup1的元组不存在
五、元组运算符
与字符串一样,元组之间可以使用+ 和*进行运算,意思就是可以进行组合和复制,运算后可以生成一个新的元组,其中操作符如下:
python表达式 | 描 述 | 结 果 |
len(1,2,3) | 计算元素个数 | 3 |
(1,2,3)+(4,5,6) | 连接 | (1,2,3,4,5,6) |
("a","b") * 3 | 复制 | ("a","b,"a","b"","a","b") |
3 in (1,2,3) | 元素是否存在 | True |
for x in (1,2,3):print(x,end="") | 遍历元组 | 1 2 3 |
元组中包含的内置函数如下:
方法 | 描述 | 方法 | 描述 |
len(tuple) | 计算元组的元素个数 | min(tuple) | 返回元组中元素的最小值 |
max(tuple) | 返回元组中元素的最大值 | tuple(seq) | 将列表转换为元组 |
对内置函数的使用实例如下:
tup1 = (56,12,45,75,85)
y = min(tup1)
print(y) #输出的结果应该为12
注意:可以使用元组来一次性对多个变量进行赋值,如:
(x,y,z) = (1,2,3)
print(x,y,z)
如果想实现x,y的交换也是可以滴
y,x = 1,2
x,y = y,x
print(x,y) # 输出的结果为 1,2
3、元组与列表的转换
在实际中,元组、列表、字符串之间是可以相互转换的,需要使用到的三个函数,str()、tuple()、list()
一、将元组转换为列表
列表对象 = list(元组对象)
实例如下:
tup = (1,2,3)
list1 = list(tup) #将元组转换为列表
print(list1) #此处输出是[1,2,3]
二、将列表转换为元组
元组对象 = tuple(列表对象)
实例如下:
nums = [1,2,3,4]
tup = tuple(nums) #将列表转换为元组
print(tup) #此处应该输出 (1,2,3,4)
三、将列表转换为字符串
实例如下:
nums1 = [1,3,5,7,8,10]
str1 = str(nums1) #列表转换成字符串,返回字符串:[1,3,5,7,8,10]
print(str1[2]) #打印出逗号,在字符串中索引为2的元素是逗号
nums2 = ["test","测试",100,200]
str2 = "%"
srt2 =str2.join(num2) #用百分号连接起来的字符串
str2 = ""
str2 = str2.join(num2) #用空字符连接起来的字符串
四、字典
python中字典是一种可变容器模型,且可存储任意类型对象,如字符串、列表、元组、数字等。也被称作是关联数组或哈希表。
一、创建字典
字典由键和对应值组成(key=>value)成对组成。字典的每个键和对应的值之间用冒号隔开,键/值对之间用逗号隔开,整个字典用花括号{}括起来,基本语法如下:
d = {key1:value1,key2:value2}
注意:键必须是唯一的,但值不一定,值可以取任何数据类型,且键必须是不可变的,如字符串、数字、元组等。
字典实例:
dict = {"xmj":40,"zhan":91,"wang":80}
二、字典的特性:
1、字典值可以是任何python对象,如字符串、数字、元组等
2、不允许同一个键出现两次,创建时如同一个键被两次赋值,后一个值会被覆盖前面得值。
3、键必须不可变,所以可以用数字,可以用数字、字符串、元组等 ,用列表就不可行。
三、访问字典里的值
访问字典里的值时把相应的键放入方括号中,实例如下:
dict = {"Name":"测试","Age":20,"class":"计算机一班"}
print("dict["Name"]: ",dict["Name"])
print("dict["Age"]: ",dict["Age"])
以上实例输出的结果展示如下:
dict["Name"]: 测试
dict["Age"]: 20
如果访问的值不存在则会报错
四、修改字典元素
dict = {"Name":"测试","Age":20,"class":"计算机一班"}
dict["Age"] = 30 # 更新字典中键为Age的值
dict["School"] = "中国大学" # 新增一个键和值
print("dict["Age"]: ",dict["Age"])
print("dict["School"]: "dict["School"])
以上实例输出的结果展示如下:
dict["Age"]: 30
dict["School"]: 中国大学
五、删除字典元素
del() 方法允许使用键从字典中删除元素。clear()方法清空字典中所有的元素。
dict = {"Name":"测试","Age":20,"class":"计算机一班"}
del dict["Name"] #删除字典中键为Name的元素
dict.clear() #清空字典中所有的元素
del dict #删除字典,这样操作后字典将不复存在
六、in运算
检查某个值是否存在字典中。
dict = {"Name":"测试","Age":20,"class":"计算机一班"}
print("Age" in dict) #等价于print(dict.has_key("Age")) 输出结果为True
七、获取字典中的所有值
values()以列表返回字典中所有的值,实例如下:
1 dict = {"Name":"测试","Age":20,"class":"计算机一班"}
2 print(dict.values()) #返回的结果为 ["测试",20,"计算机一班"]
八、items()方法
items()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。
dict = {"Name":"测试","Age":20,"class":"计算机一班"}
for key,value in dict.items():
print(key,value)
以上实例输出的结果展示如下:
Name 测试
Age 20
class 计算机一班
注意:字典中的元素没有顺序之分,所有有时候打印出来的顺序与重建之初的顺序不一致,这不是错误。因为在存储是自动做了优化,这样的存储于查询的效率更高。
字典与列表的一个区别:列表中保持元素的相对关系,即序列关系;而字典中完全是无序的,所以是非序列。如果想要保持一个集合中元素的顺序则需要使用列表而不是字典。
九、字典的内置函数与方法汇总
假设字典名称为dict1
函数 | 描述 |
dict1.clear() | 删除字典中所有的元素 |
dict1.copy() | 返回字典的副本,类似于复制 |
dict1.fromkeys(seq,value) | 创建一个新字典,以序列seq中的元素作为字典的键,以value中的值作为字典中的键对应的初始值 |
dict1.get(key,default=None) | 返回指定键的值 |
dict1.has_key(key) | 在python3.0以后此方法已经删除 |
dict1.items() | 以列表返回可遍历的(键,值)元组数据 |
dict1.keys() | 以列表返回字典所有的键 |
dict1.setdefault(key,default=None) | 和get()类似,但如果键不存在与字典中则会添加键并将值设为default |
dict1.update(dict2) | 把字典dict2的键/值更新为dict1中 |
dict1.values() | 以列表返回字典中的所有值 |
cmp(dict1,dict2) | 内置函数,比较两个字典的元素 |
len(dict) | 内置函数,计算字典元素个数,既键的总数 |
str(dict) | 内置函数,输出字典可打印的字符串表示 |
type(variable) | 内置函数,返回输入的变量类型,如果变量是字典就返回字典类型。 |
python3中列表、元组、字典的增删改查说明详解的更多相关文章
- SSH登录与增删改查demo详解+源代码
点击下载,测试绝对可用SSH整合框架登录加增删改查demo 下载地址:http://download.csdn.net/detail/qq_33599520/9784679 一.框架概述 spri ...
- python中列表的常用操作增删改查
1. 列表的概念,列表是一种存储大量数据的存储模型. 2. 列表的特点,列表具有索引的概念,可以通过索引操作列表中的数据.列表中的数据可以进行添加.删除.修改.查询等操作. 3. 列表的基本语法 创建 ...
- MongoDB增删改查操作详解
一.插入 MongoDB的插入操作很简单,使用insert方法,这里演示从创建数据库.创建集合到插入文档.查询文档. 集合创建方法参数说明: size:集合最大空间 max:集合最多文档数量 (超出s ...
- MongoDB增删改查操作详解(命令行)
一.插入 MongoDB的插入操作很简单,使用insert方法,这里演示从创建数据库.创建集合到插入文档.查询文档. 集合创建方法参数说明: size:集合最大空间 max:集合最多文档数量 (超出s ...
- 2018.8.1 python中字典的增删改查及其它操作
一.字典的简单介绍 1.dict 用{}来表示 键值对数据 {key:value} 唯一性 2.键都必须是可哈希,不可变的数据类型就可以当做字典中的键 值没有任何限制 ...
- 字典(dict),增删改查,嵌套
一丶字典 dict 用{}来表示 键值对数据 {key:value} 唯一性 键 都必须是可哈希的 不可变的数据类型就可以当做字典中的键 值 没有任何限制 二丶字典的增删改查 1.增 dic[k ...
- python字典的增删改查
字典dict 知识点: {}括起来,以键值对形式存储的容器性数据类型: 键-必须是不可变数据类型,且是唯一的: -值可以是任意数据类型.对象. 优点:关联性强,查询速度快. 缺点:以空间换时间. 字典 ...
- DAY5(PYTHON) 字典的增删改查和dict嵌套
一.字典的增删改查 dic={'name':'hui','age':17,'weight':168} dict1={'height':180,'sex':'b','class':3,'age':16} ...
- kibana的Dev Tool中如何对es进行增删改查
kinaba Dev Tool中对es(elasticSearch)进行增删改查 一.查询操作 查询语句基本语法 以下语句类似于mysql的: select * from xxx.yyy.topic ...
随机推荐
- uboot中的中断macro宏
目录 uboot中的中断macro宏 引入 内存分配 流程概览 普通中断 保存现场 中断函数打印具体寄存器 恢复现场 软中断 空间获取 保存现场 附录速记 疑惑待解 title: uboot中的中断m ...
- 深入剖析Kubernetes学习笔记:深入理解镜像(07)
一.容器里的进程看到的文件系统又是什么样子呢? 1.你会看到好多宿主机的文件 [root@k8s-master ~]# vim ns.c [root@k8s-master ~]# gcc -o nl ...
- redis---------AOF文件异常导致的redis无法载入
AOF损坏时的对策1.若在写AOF文件时Server崩溃则可能导致AOF文件损坏而不能被Redis载入.可通过如下步骤修复: 创建一个AOF文件的备份: cp appendonly.aof appen ...
- 第4章学习小结_串(BF&KMP算法)、数组(三元组)
这一章学习之后,我想对串这个部分写一下我的总结体会. 串也有顺序和链式两种存储结构,但大多采用顺序存储结构比较方便.字符串定义可以用字符数组比如:char c[10];也可以用C++中定义一个字符串s ...
- sleep、wait、notify、notifyAll的区别
Sleep 和wait 1. sleep是Thread类的静态方法,wait是Object类中定义的方法2. Thread.sleep不会导致锁行为的改变,如果当前线程是拥有锁的,那么Thread.s ...
- JavaScript—offset、client、scroll
offsetTop,offsetLeft:获取离最近父容器的位置,如果没有父容器,那么获取离body最近的位置 offsetWidth,offsetHeight:获取元素的大小,包括padding,b ...
- JUC--volatiley&CAS
public class VolatileTest { public static void main(String[] args) { ThreadDemo td = new ThreadDemo( ...
- Oracle XMLTYPE数据类型创建及插入
--1.创建xml表Create TABLE testxml2(id NUMBER,data XMLTYPE); --2.插入数据--1)创建目录 CREATE or replace DIRECTOR ...
- 修改Maven仓库路径
我自己新建的地址:D:\apache-maven-3.6.0\repository 找到:localRepository,修改为自定义的位置 在IDEA里面进行配置 这样项目的maven仓库地址就修改 ...
- Qt-c++桌面编程报错:qt.qpa.plugin: Could not find the Qt platform plugin "windows" in "",已解决
语言:c++ 编译库:Qt GUI,qt5.12.1 软件类型:Qt application,qt桌面软件 运行平台:window 10 ?按照[https://www.devbean.net/201 ...