導航:首頁 > 編程語言 > 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列表增刪改查相關的資料

熱點內容
程序員如何自行車通勤 瀏覽:212
打開文件夾一直彈出新的窗口win10 瀏覽:474
外出2015孫藝珍完整板 瀏覽:409
男主角叫奧斯丁的電影 瀏覽:901
linux殺進程命令 瀏覽:597
主角叫秦天系統小說 瀏覽:703
韓國倫理游泳池 瀏覽:6
電影殺手為小男孩改名叫林默 瀏覽:373
現代道士電影 瀏覽:263
tcltkpdf 瀏覽:309
台灣四級論理電影 瀏覽:578
以肉為主yy小說txt下載 瀏覽:727
俄羅斯穿越電影 瀏覽:485
韓國《奇怪的美發沙龍》中文 瀏覽:137
建行app怎麼調成日間模式 瀏覽:666
穿越皇帝當種馬 瀏覽:48
程序員和對象關系不清楚 瀏覽:133
能編輯文件夾的程序 瀏覽:981
國產劇情中國大胸女孩 瀏覽:761
滅門慘案哪三部 瀏覽:1002