导航:首页 > 编程语言 > python列表增删改查

python列表增删改查

发布时间:2023-03-31 06:09:52

‘壹’ python入门需要学哪些

初学者学习Python需循序渐进,可以从以下内容入手学习:

1.Python基础知识

学习任何一门编程语言都需要学习相关语法知识,Python基础知识的学习主要包括Python解释器执行原理、字符编码、注释、变量、缩进、流程控制、文件操作、数据类型、数据类型内置方法、字符串格式化、运算符、输入输出、三元运算、collections、列表、字典、元组、集合、IO操作、文件增删改查、函数等。

5.数据库、缓存、队列

Python数据库、缓存、队列学习内容为Python操作redis、Python操作memcache、rabbitMQ消息队列、数据库介绍、mysql数据库安装使用、mysql管理、mysql数据类型、常用mysql命令、创建数据库、外键、增删改查表、权限、事务、索引、Python操作mysql等。

6.Web开发基础

Python之Web开发基础学习内容为HTML基础、CSS基础、JavaScript基础、局部变量和全局变量、集合、数组、字典、函数参数、原型、面向对象、作用域、dom编程、jquery介绍、jquery选择器、jquery属性和CSS操作、jquery文档处理、jquery筛选、jquery事件托管、jquery事件、jquery ajax、jquery扩展方法、bootstrap使用、EasyUI介绍和使用等。

7.Web框架学习

Python之Web框架学习内容为Web框架本质、socket服务器、基于反射的路由系统、WSGI介凯闭行绍及原理实现态御、开发自己的Web框架、MVC和MTV、路由系统、模板、django基础学习与使用、普通路由和动态路由、模板引擎、ORM介绍、Django ORM增删改查学习、自定义tag、django进阶学习与使用、模型绑定、Form表单验证、Django ORM进阶学习、ModelForm、自定义Validator等。

‘贰’ python中元祖,列表,集合,字典的区别

元祖中的数据是不可修改的.但是是有顺序的
列表的长度是可变的,也就是说列表中的元素可以增删改,列表也是有序的.
字典是键值对的组合,是无序的,长度可变,可以增删改查.
其中列表,字典,元组都是可以相互嵌套的.

‘叁’ python中列表的增删改查

关于列表首先需要知道它是一系列按特定顺序排列的元素组成

你可以创建包含字母表中所有字母、数字0至9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。鉴于列表通常包含多个元素,给列表指定一个表示复的名称是个不错的主意。

以下内容是基于python来做列表的讲解,主要讲的是列表的增删改查,包括哪些函数及例子,本次涉及的函数如下:

在实际的数稿乎据处理场景中,可以通过循环,把每次循环的结果依次添加到列表中,便于我们处理数据。

List(列表) 是 Python 中使用  最频繁  的数据类型,在其他语言中通常叫做  数组

列表有以下特性:

·  专门用于存储一串信息

· 用[ ]定义,数据之间用逗号(,)分隔

·  索引从0开始

列表从0开始,如果超过索引值就会报错:list index out of range

insert(0,8) 在索引为0的位置插入数字8 

append 在列表结尾插入数字8

append 在列表结尾插入新的列表,会出现数据不会依次加上,而是作为一个整体。

extend 在结尾插入别的列表的数据,该函数可以解决添加列表数据的问题

注意使用 append 追加的是将后面的 列表作为一个整体追加到最后 ,而使用 extend 追加的是将里面的 元素依次追加到最后 。

del 列表掘搜[索引]:删除指定索引元素

列表.remove(数据):删除第一个数值

列表.pop():可指定索引删除,不指定会删除最后一个

列表.index(数据):查询给定值的索引,即想要知道元素的位置,如果查询元素有多个相同值只会返回第一个值出现的记录

len(列表):有多少个元素

一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配,假设每个教室可以容纳任意数量的教师

对列表for遍历出来,找出我们需要的数值。

尽管 Python 的  列表  中可以  存储不同类判敬历型的数据

但是在开发中,更多的应用场景是

· 列表  一般只存储 相同类型 的数据

·  通过  for循环 ,在循环体内部,针对列表中的每一项元素,执行相同的操作

‘肆’ python 操作 clickhouse 连接 增 删 改 查

1.先导入clickhouse包顷冲:pip install clickhouse_driver
2.连接方式

1.查询扒乎烂

2.插入

3.删春漏除

4.修改

‘伍’ python从键盘输入新的动物名,判断说输入的动物名字存不存在

基于python列表实现一个简单的动物信息管理系统,包括的内容动物名称,动物数量等

1.添加动物信息 , 2.删除动物信息,3. 修改动物信息,4.显示所有动物, 0.退出系统

简单思路分析:

1. 由于是基于列表实现,所以首先要定义一个列表

2. 包括的内容有动物名称,动物数量等多个字段旦猛野信息,一个列表肯定无法满足,所以需要嵌套子列表

3. 主要涉及到的操作模喊是增删改查,这里需要定义4个对应的方法。

4. 由于涉及到多个操作并且是由用户决定执行哪个操作,并且何时退出系统也是由用户决定,所以还涉及到的知识点:循环,用户输入,判断用户输入,执行对应操作。

简要代码解析:

1. 首先定义一个动物类,并在初始化时声明一个主列表用于存放动物信息

2. 添加操作:先接收用户输入的动物名称和数量,并进行数量值有效性校验,因为数量应该是数字类型且每次输入都需验证,所以这里用while循环进行校验,验证通过后将动物信息添加到子列表中同时将子列表添加到主列表

3. 删除动物:接收用户要删除哪个动物,然后校验该动物是否存在,存在则删除(这里如果有需要的话还可以进行一下删除确认,防止误删),不存在给出提示。

4. 更新动物:跟删除逻辑相似,也是先接收用户要更新的动物,然后校验动物是否存在,如果存在再接收用户输入的新动物名称和数量(依然需有效性校验),然后更新。

5. 显示所有动物,这个比较简单,直接循环主列表进行输出即可

6. 定义main函数,可以在系统运行后,用户可以选择不同操作,因为运行一次不只是只执行一个操作,所以这里要用到循环,让用户可不停选择操作类型进行操作直到输入0退出系知宽统

7. 当然如果想存入动物的多个字段信息,如年龄,毛色,大小等等,这里选择列表加字典的形式效果会更好,有需要可自行改造。

‘陆’ python中使用循环分别将小组成员姓名成绩性别存放在个列表L1中,再将信息放入L中实现增删改查排

使用 zip 函数,然后将 zip 函数返回的每个元素转 list。
L_merge = [list(i) for i in zip(L1, L2, L3)]

‘柒’ python | Elasticsearch-dsl常用方法总结(join为案例)

        Elasticsearch DSL是一个高级库,其目的是帮助编写和运行针对Elasticsearch的查询。它建立在官方低级客户端(elasticsearch-py)之州悔睁上。

        它提供了一种更方便和习惯的方册岁式来编写和操作查询。它接近Elasticsearch JSON DSL,反映了它的术语和结构。它直接使用定义的类或类似查询集的表达式来暴露从Python的DSL的整个范围。

1.首先导入包

2.连接上搭建好的es服务器 并创建dsl 查询实例

3.接下来就是常用的增删改查的基本使用
3.1 创建索引
首先定义映射关系(也可以不指定前瞎,如果想要使用join功能必须手动定义)

3.2创建库

3.3删除库

3.4更新库数据

3.5dsl查询数据
        查询1000条数据

        根据父级查询子级

        根据子级查询父级

        将查询结果转化为字典

‘捌’ 掌握Python 操作 MySQL 数据库

本文Python 操作 MySQL 数据库需要是使用到 PyMySQL 驱动

Python 操作 MySQL 前提是要安装好 MySQL 数据库并能正常连接使用,安装步骤详见下文。

注意: 安装过程我们需要通过开启管理员权限来安装,否则会由于权限不足导致无法安装。

首先需要先下载 MySQL 安装包, 官网下载地址 下载对应版本即可,或直接在网上拉取并安装:

权限设置:

初始化 MySQL:

启动 MySQL:

查看 MySQL 运行状态:

Mysql安装成功后,默认的root用户密码为空,你可以使用以下命令来创建root用户的密码:

登陆:

创建数据库:

查看数据库:

PyMySQL 模块使用 pip命令进行安装:

假如系统不支持 pip 命令,可以使用以下方式安装:

pymysql .connect 函数:连接上数据库

输出结果显示如下:表面数据库连接成功

使用 pymysql 的 connect() 方法连接数据库,connect 参数解释如下:

conn.cursor():获取游标

如果要操作数据库,光连接数据是不够的,咱们必须拿到操作数据库的游标,才能进行后续的操作,游标的主要作用是用来接收数据库操作后的返回结果,比如读取数据、添加数据。通过获取到的数据库连接实例 conn 下的 cursor() 方法来创建游标,实例如下:

输出结果为:

cursor 返回一个游标实例对象,其中包含了很多操作数据的方法,如执行sql语句,sql 执行命令: execute() 和 executemany()

execute(query,args=None):


executemany(query,args=None):

其他游标对象如下表:

完整数据库连接操作实例如下:

以上结果输出为:

创建表代码如下:

如下所示数据库表创建成功:

插入数据实现代码:

插入数据结果:

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

查询数据代码如下:

输出结果:

DB API中定义了一些数据库操作的错误及异常,下表列出了这些错误和异常:

本文给大家介绍 Python 如何连接 Mysql 进行数据的增删改查操作,文章通过简洁的代码方式进行示例演示,给使用 Python 操作 Mysql 的工程师提供支撑。

‘玖’ python变量的可变与不可变类型

(1)数字类型(int,float, bool,complex)
(2)字符串(str)
(3)元组(tuple)

(1)列表(list)
(2)字典(dict)

示例蔽答-不可拆激变类型:

结果:

示例-可变类型:

结果:

示例1:

结果:

示例2:

结果:

hash(object) 返回对象的哈希值。
(1)只能接受不可变类型的数据作为参数
(2)返回的是一个整数,是数据的唯一特征码(就像人的指纹一样)
(3)在python中,设置字典键值对时,会首先对key进行hash,用来决定如何在内存中保存字典的数据,以方便后续对字典进行宏御慧增删改查;

‘拾’ python对数据库表格里面的内容增删查改怎么写

本文主要给大家介绍了关于python模拟sql语句对员工表格进行增删改查的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:
具体需求:
员工信息表程序,实现增删改查操作:
可进行模糊查询,语法支持下面3种:
select name,age from staff_data where age > 22 多个查询参数name,age 用','分割
select * from staff_data where dept = 人事
select * from staff_data where enroll_date like 2013
查到的信息,打印后,最后面还要显示查到的条数
可创建新员工纪录,以phone做唯一键,phone存在即提示,staff_id需自增,添加多个记录record1/record2中间用'/'分割
insert into staff_data values record1/record2
可删除指定员工信息纪录,输入员工id,即可删除
delete from staff_data where staff_id>=5andstaff_id<=10
可修改员工信息,语法如下:
update staff_table set dept=Market,phone=13566677787 where dept = 运维 多个set值用','分割
使用re模块,os模块,充分使用函数精简代码,熟练使用 str.split()来解析格式化字符串
由于,sql命令中的几个关键字符串有一定规律,只出现一次,并且有顺序!!!
按照key_lis = ['select', 'insert', 'delete', 'update', 'from', 'into', 'set', 'values', 'where', 'limit']的元素顺序分割sql.
分割元素作为sql_dic字典的key放进字典中.分割后的列表为b,如果len(b)>1,说明sql字符串中含有分割元素,同时b[0]对应上一个分割元素的值,b[-1]为下一次分割对象!
这样不断迭代直到把sql按出现的所有分割元素分割完毕,但注意这里每次循环都是先分割后赋值!!!当前分割元素比如'select'对应的值,需要等到下一个分割元素
比如'from'执行分割后的列表b,其中b[0]的值才会赋值给sql_dic['select'] ,所以最后一个分割元素的值,不能通过上述循环来完成,必须先处理可能是最后一个分割元素,再正常循环!!
在这sql语句中,有可能成为最后一个分割元素的 'limit' ,'values', 'where', 按优先级别,先处理'limit' ,再处理'values'或 'where'.....
处理完得到sql_dic后,就是你按不同命令执行,对数据文件的增删改查,最后返回处理结果!!
示例代码# _*_coding:utf-8_*_# Author:Jaye Heimport reimport os def sql_parse(sql, key_lis): ''' 解析sql命令字符串,按照key_lis列表里的元素分割sql得到字典形式的命令sql_dic :param sql: :param key_lis: :return: ''' sql_list = [] sql_dic = {} for i in key_lis: b = [j.strip() for j in sql.split(i)] if len(b) > 1: if len(sql.split('limit')) > 1: sql_dic['limit'] = sql.split('limit')[-1] if i == 'where' or i == 'values': sql_dic[i] = b[-1] if sql_list: sql_dic[sql_list[-1]] = b[0] sql_list.append(i) sql = b[-1] else: sql = b[0] if sql_dic.get('select'): if not sql_dic.get('from') and not sql_dic.get('where'): sql_dic['from'] = b[-1] if sql_dic.get('select'): sql_dic['select'] = sql_dic.get('select').split(',') if sql_dic.get('where'): sql_dic['where'] = where_parse(sql_dic.get('where')) return sql_dic def where_parse(where): ''' 格式化where字符串为列表where_list,用'and', 'or', 'not'分割字符串 :param where: :return: ''' casual_l = [where] logic_key = ['and', 'or', 'not'] for j in logic_key: for i in casual_l: if i not in logic_key: if len(i.split(j)) > 1: ele = i.split(j) index = casual_l.index(i) casual_l.pop(index) casual_l.insert(index, ele[0]) casual_l.insert(index+1, j) casual_l.insert(index+2, ele[1]) casual_l = [k for k in casual_l if k] where_list = three_parse(casual_l, logic_key) return where_list def three_parse(casual_l, logic_key): ''' 处理临时列表casual_l中具体的条件,'staff_id>5'-->['staff_id','>','5'] :param casual_l: :param logic_key: :return: ''' where_list = [] for i in casual_l: if i not in logic_key: b = i.split('like') if len(b) > 1: b.insert(1, 'like') where_list.append(b) else: key = ['<', '=', '>'] new_lis = [] opt = '' lis = [j for j in re.split('([=<>])', i) if j] for k in lis: if k in key: opt += k else: new_lis.append(k) new_lis.insert(1, opt) where_list.append(new_lis) else: where_list.append(i) return where_list def sql_action(sql_dic, title): ''' 把解析好的sql_dic分发给相应函数执行处理 :param sql_dic: :param title: :return: ''' key = {'select': select, 'insert': insert, 'delete': delete, 'update': update} res = [] for i in sql_dic: if i in key: res = key[i](sql_dic, title) return res def select(sql_dic, title): ''' 处理select语句命令 :param sql_dic: :param title: :return: ''' with open('staff_data', 'r', encoding='utf-8') as fh: filter_res = where_action(fh, sql_dic.get('where'), title) limit_res = limit_action(filter_res, sql_dic.get('limit')) search_res = search_action(limit_res, sql_dic.get('select'), title) return search_res def insert(sql_dic, title): ''' 处理insert语句命令 :param sql_dic: :param title: :return: ''' with open('staff_data', 'r+', encoding='utf-8') as f: data = f.readlines() phone_list = [i.strip().split(',')[4] for i in data] ins_count = 0 if not data: new_id = 1 else: last = data[-1] last_id = int(last.split(',')[0]) new_id = last_id+1 record = sql_dic.get('values').split('/') for i in record: if i.split(',')[3] in phone_list: print('\033[1;31m%s 手机号已存在\033[0m' % i) else: new_record = '%s,%s\n' % (str(new_id), i) f.write(new_record) new_id += 1 ins_count += 1 f.flush() return ['insert successful'], [str(ins_count)] def delete(sql_dic, title): ''' 处理delete语句命令 :param sql_dic: :param title: :return: ''' with open('staff_data', 'r', encoding='utf-8') as r_file,\ open('staff_data_bak', 'w', encoding='utf-8') as w_file: del_count = 0 for line in r_file: dic = dict(zip(title.split(','), line.split(','))) filter_res = logic_action(dic, sql_dic.get('where')) if not filter_res: w_file.write(line) else: del_count += 1 w_file.flush() os.remove('staff_data') os.rename('staff_data_bak', 'staff_data') return ['delete successful'], [str(del_count)] def update(sql_dic, title): ''' 处理update语句命令 :param sql_dic: :param title: :return: ''' set_l = sql_dic.get('set').strip().split(',') set_list = [i.split('=') for i in set_l] update_count = 0 with open('staff_data', 'r', encoding='utf-8') as r_file,\ open('staff_data_bak', 'w', encoding='utf-8') as w_file: for line in r_file: dic = dict(zip(title.split(','), line.strip().split(','))) filter_res = logic_action(dic, sql_dic.get('where')) if filter_res: for i in set_list: k = i[0] v = i[-1] dic[k] = v line = [dic[i] for i in title.split(',')] update_count += 1 line = ','.join(line)+'\n' w_file.write(line) w_file.flush() os.remove('staff_data') os.rename('staff_data_bak', 'staff_data') return ['update successful'], [str(update_count)] def where_action(fh, where_list, title): ''' 具体处理where_list里的所有条件 :param fh: :param where_list: :param title: :return: ''' res = [] if len(where_list) != 0: for line in fh: dic = dict(zip(title.split(','), line.strip().split(','))) if dic['name'] != 'name': logic_res = logic_action(dic, where_list) if logic_res: res.append(line.strip().split(',')) else: res = [i.split(',') for i in fh.readlines()] return res pass def logic_action(dic, where_list): ''' 判断数据文件中每一条是否符合where_list条件 :param dic: :param where_list: :return: ''' logic = [] for exp in where_list: if type(exp) is list: exp_k, opt, exp_v = exp if exp[1] == '=': opt = '==' logical_char = "'%s'%s'%s'" % (dic[exp_k], opt, exp_v) if opt != 'like': exp = str(eval(logical_char)) else: if exp_v in dic[exp_k]: exp = 'True' else: exp = 'False' logic.append(exp) res = eval(' '.join(logic)) return res def limit_action(filter_res, limit_l): ''' 用列表切分处理显示符合条件的数量 :param filter_res: :param limit_l: :return: ''' if limit_l: index = int(limit_l[0]) res = filter_res[:index] else: res = filter_res return res def search_action(limit_res, select_list, title): ''' 处理需要查询并显示的title和相应数据 :param limit_res: :param select_list: :param title: :return: ''' res = [] fields_list = title.split(',') if select_list[0] == '*': res = limit_res else: fields_list = select_list for data in limit_res: dic = dict(zip(title.split(','), data)) r_l = [] for i in fields_list: r_l.append((dic[i].strip())) res.append(r_l) return fields_list, res if __name__ == '__main__': with open('staff_data', 'r', encoding='utf-8') as f: title = f.readline().strip() key_lis = ['select', 'insert', 'delete', 'update', 'from', 'into', 'set', 'values', 'where', 'limit'] while True: sql = input('请输入sql命令,退出请输入exit:').strip() sql = re.sub(' ', '', sql) if len(sql) == 0:continue if sql == 'exit':break sql_dict = sql_parse(sql, key_lis) fields_list, fields_data = sql_action(sql_dict, title) print('\033[1;33m结果如下:\033[0m') print('-'.join(fields_list)) for data in fields_data: print('-'.join(data))

总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

阅读全文

与python列表增删改查相关的资料

热点内容
泰国永恒无删减版 浏览:42
我的世界服务器如何更改地皮地形 浏览:505
山西联通app是什么软件 浏览:355
更新电视剧最快的网站 浏览:134
兄弟训诫文严厉 浏览:607
李楠程序员 浏览:288
山推管家app怎么改密码 浏览:680
贷款结束什么时候解压 浏览:142
18命令方块代码 浏览:936
安卓手机视频怎么传到mac电脑上 浏览:932
马缨花app是什么 浏览:6
python金融分析招聘 浏览:60
可以直接写电影就有免费 浏览:108
北京一卡通app换了手机怎么弄 浏览:155
有程序员小说 浏览:688
点开就能看的网址 浏览:450
单片机控制和plc控制系统设计 浏览:29
她通常去电影院英文翻译 浏览:274
阿里个人云服务器叫什么名字 浏览:298
萱萱日记 浏览:707