2020-04-26 python增删改查

python基础中的列表、元组、字典属于python中内置的序列数据结构。其中序列可以进行的操作包括索引、截取(切片)、加、乘、成员检查等。

1、列表

列表(list)是最常用的python数据类型之一,列表的数据项不需要具有相同的类型。创建一个列表,只需要把用逗号分隔开的不同数据项使用方括号[]括起来即可。创建列表实例如下:

list1 = ["test","测试",1997,2000];

list2 = [1,2,3,4,5,6];

list3 = ["a","b","c","d"];

列表的索引是从0开始,列表可以进行截取(切片)、组合。

一、访问列表的元素

访问的方式可以是通过下标索引,也可以是以方括号的形式截取字符。

1 list1 = ["test","测试",2018,2019,];2 list2 = [1,2,3,4,5,6];3print("list1[0]:",list[0])4print("list2[1:5]:",list2[1:5])

以上实例输出的结果为:

1list1[0]: test2list2[1:5]: [2,3,4,5]


二、增加列表中的元素

使用append()方法在列表的末尾增加新的元素。

1list1 = ["test","测试",2018,2019,];2list1.append(2020)3print(list)

以上实例输出的结果为:

1["test","测试",2018,2019,2020]


三、修改列表中的元素

实例如下:

1list1 = ["test","测试",2018,2019,];2print("修改前的列表元素:",list1)3list1[2] = 2017;              #将列表中索引为2的元素修改为20174print("修改后的列表元素:",list2)

以上实例执行后的结果为 :

1修改前的列表元素:["test","测试",2018,2019,]2修改后的列表元素:["test","测试",2017,2019,]


四、删除列表中的元素

方法一:使用del语句来删除列表的元素,实例如下:

1list1 = ["test","测试",2018,2019,];2print(list1)3dellist1[2]4print("删除索引为2的元素后的列表:",list1)

以上实例执行后展示的结果为:

1["test","测试",2018,2019,]2["test","测试",2019,]


方法二:使用remove()方法来删除列表中的元素,实例如下:

1list1 = ["test","测试",2018,2019,];2list1.remove(2018)3list1.remove("测试")4print("删除部分元素后的列表:"list1)

以上实例执行后展示的结果为:

1["test",2019,]


方法三:使用pop()方法来删除列表中的指定位置的元素,无参数时默认删除最后一个元素,实例如下:

1list1 = ["test","测试",2018,2019,];2list1.pop(1)                 #删除位置1的元素 测试3list1.remove()                #删除最后一个元素 20194print("删除部分元素后的列表:",list1)

以上实例执行后展示的结果为:

1["test",2018]


五、列表的其他操作符

列表对“+”和“*”的操作符与字符串相似。+号用于组合列表,*用于重复列表。其操作符如下:

python列表的操作符

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列表内置函数和方法

python列表的方法和内置函数(假设列表名为list)

方法功能

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、元组

元组的与列表类似 ,但是也有不同,不同之处在于元组中的元素不能修改。元组使用小括号(),列表使用方括号[],元组中的元素类型也是可以不同的。

一、创建元组

可以通过直接在括号中添加元素,并使用逗号隔开即可。实例如下:

1tup1 = ("test","测试",2018,2019)2tup2 = (1,2,3,4,5,6)3tup3 ="a","b","c","d"4tup4 = ()#创建空元组

 当元组中只有一个元素时需要在元素后边添加逗号,实例如下:

1tup5 = (20,)

在元组中下标索引同样是从0开始,可以进行截取,组合等操作。

二、访问元组

可以通过下标索引来访问元组中的元素,实例如下:

1tup1 = ("test","测试",2018,2019)2tup2 = (1,2,3,4,5,6)3print("tup1[0]:",tup1[0])#输出元组中第一个元素4print("tup2[1:5]:",tup2[1:5])#切片,输出从第二个元素开始到第5个元素5print("tup2[2:]:",tup2[2:])#切片,输出从第三个元素开始的以后的所有元素6print(tup2 * 2)#输出元组元素两次

以上实例输出的结果展示如下:

1tup1[0]: 中国 2tup2[1:5]: (2,3,4,5)3(3,4,5,6)4(1,2,3,4,5,6,1,2,3,4,5,6)


三、连接元组

元组是不能直接修改,但是可以创建新元组,实例如下:

1tup1 = (10,20,30)2tup2 = (100,200)3tup3 = tup1 + tup24print(tup3)

以上实例输出的结果展示如下:

(10,20,30,100,200)


四、删除元组

元组中的元素不允许被直接删除,但是可以通过del语句来删除整个元组,实例如下:


1tup1 = ("test","测试",2018,2019)2print(tup1)3del tup14print("删除元组tup1后的结果为:",tup1)




以上实例输出的结果展示如下:


1("test","测试",2018,2019)2删除元组tup1后的结果为:NameError:name"tup1"isnotdefined


由上可见,删除元组后在输出会报错。根据报错信息看出,名字为tup1的元组不存在


五、元组运算符

与字符串一样,元组之间可以使用+ 和*进行运算,意思就是可以进行组合和复制,运算后可以生成一个新的元组,其中操作符如下:

python元组的操作符号

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










元组中包含的内置函数如下:

python元组的内置函数

方法描述方法描述

len(tuple)计算元组的元素个数min(tuple)返回元组中元素的最小值

max(tuple)返回元组中元素的最大值tuple(seq)将列表转换为元组







对内置函数的使用实例如下:

1tup1 = (56,12,45,75,85)2y = min(tup1)3print(y)#输出的结果应该为12


注意:可以使用元组来一次性对多个变量进行赋值,如:

1(x,y,z) = (1,2,3)2print(x,y,z)

如果想实现x,y的交换也是可以滴

1y,x = 1,22x,y = y,x3print(x,y)# 输出的结果为 1,2


3、元组与列表的转换

在实际中,元组、列表、字符串之间是可以相互转换的,需要使用到的三个函数,str()、tuple()、list()

一、将元组转换为列表

列表对象 = list(元组对象)

实例如下:

1tup = (1,2,3)2list1 = list(tup)#将元组转换为列表3print(list1)#此处输出是[1,2,3]


二、将列表转换为元组

元组对象 = tuple(列表对象)

实例如下:


1nums = [1,2,3,4]2tup = tuple(nums)#将列表转换为元组3print(tup)#此处应该输出  (1,2,3,4)



三、将列表转换为字符串

实例如下:

1nums1 = [1,3,5,7,8,10]2str1 = str(nums1)#列表转换成字符串,返回字符串:[1,3,5,7,8,10]3print(str1[2])#打印出逗号,在字符串中索引为2的元素是逗号4nums2 = ["test","测试",100,200]5str2 ="%"6srt2 =str2.join(num2)#用百分号连接起来的字符串7str2 =""8str2 = str2.join(num2)#用空字符连接起来的字符串


四、字典

python中字典是一种可变容器模型,且可存储任意类型对象,如字符串、列表、元组、数字等。也被称作是关联数组或哈希表。

一、创建字典


字典由键和对应值组成(key=>value)成对组成。字典的每个键和对应的值之间用冒号隔开,键/值对之间用逗号隔开,整个字典用花括号{}括起来,基本语法如下:


1d = {key1:value1,key2:value2}


注意:键必须是唯一的,但值不一定,值可以取任何数据类型,且键必须是不可变的,如字符串、数字、元组等。

字典实例:


1dict = {"xmj":40,"zhan":91,"wang":80}



二、字典的特性:

1、字典值可以是任何python对象,如字符串、数字、元组等

2、不允许同一个键出现两次,创建时如同一个键被两次赋值,后一个值会被覆盖前面得值。

3、键必须不可变,所以可以用数字,可以用数字、字符串、元组等 ,用列表就不可行。


三、访问字典里的值

访问字典里的值时把相应的键放入方括号中,实例如下:

1dict = {"Name":"测试","Age":20,"class":"计算机一班"}2print("dict["Name"]: ",dict["Name"])3print("dict["Age"]: ",dict["Age"])

以上实例输出的结果展示如下:

1dict["Name"]: 测试2dict["Age"]: 20

如果访问的值不存在则会报错


四、修改字典元素

1dict = {"Name":"测试","Age":20,"class":"计算机一班"}2dict["Age"] = 30# 更新字典中键为Age的值3dict["School"] ="中国大学"# 新增一个键和值4print("dict["Age"]: ",dict["Age"])5print("dict["School"]: "dict["School"])

以上实例输出的结果展示如下:

1dict["Age"]: 302dict["School"]: 中国大学


五、删除字典元素

del() 方法允许使用键从字典中删除元素。clear()方法清空字典中所有的元素。

1dict = {"Name":"测试","Age":20,"class":"计算机一班"}2deldict["Name"]#删除字典中键为Name的元素3dict.clear()#清空字典中所有的元素4deldict#删除字典,这样操作后字典将不复存在


六、in运算

检查某个值是否存在字典中。

1dict = {"Name":"测试","Age":20,"class":"计算机一班"}2print("Age"indict)#等价于print(dict.has_key("Age"))  输出结果为True


七、获取字典中的所有值

values()以列表返回字典中所有的值,实例如下:

1 dict = {"Name":"测试","Age":20,"class":"计算机一班"}2print(dict.values())#返回的结果为 ["测试",20,"计算机一班"]


八、items()方法

items()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。

1dict = {"Name":"测试","Age":20,"class":"计算机一班"}2forkey,valuein dict.items():3print(key,value)

以上实例输出的结果展示如下:

1Name 测试2Age 203class计算机一班

注意:字典中的元素没有顺序之分,所有有时候打印出来的顺序与重建之初的顺序不一致,这不是错误。因为在存储是自动做了优化,这样的存储于查询的效率更高。

字典与列表的一个区别:列表中保持元素的相对关系,即序列关系;而字典中完全是无序的,所以是非序列。如果想要保持一个集合中元素的顺序则需要使用列表而不是字典。


九、字典的内置函数与方法汇总

假设字典名称为dict1

python中字典的内置函数与方法汇总

函数描述

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)内置函数,返回输入的变量类型,如果变量是字典就返回字典类型。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,711评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,932评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,770评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,799评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,697评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,069评论 1 276
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,535评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,200评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,353评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,290评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,331评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,020评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,610评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,694评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,927评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,330评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,904评论 2 341

推荐阅读更多精彩内容