關於python實現一個字典的信息

本文目錄一覽:

用Python創建一個學生字典並可以查詢其中信息

你可以試試這個———————————————————-

# -*- coding:UTF-8 -*-

students=[]

def meun():

print(“=”*30)

print(“*”*10+”學生信息管理”+”*”*10)

print(“1.添加學生信息”)

print(“2.刪除學生信息”)

print(“3.指定學號查詢學生信息”)

print(“4.查詢全部學生信息”)

print(“5.保存信息”)

print(“0.退出系統”)

print(“=”*30)

def add_new_info():

      global students

      print(“您選擇了添加學生信息功能”)

      name = input(“請輸入學生姓名:”)

      stuId = input(“請輸入學生學號(學號不可重複):”)

      age = input(“請輸入學生年齡:”)

      #驗證學號是否唯一

      i = 0

      leap = 0

      for temp in students:

          if temp[‘id’] == stuId:

              leap = 1

              break

          else:

              i = i + 1

          if leap == 1:

              print(“輸入學生學號重複,添加失敗!”)

              break

      else:

          # 定義一個字典,存放單個學生信息

          stuInfo = {}

          stuInfo[‘name’] = name

          stuInfo[‘id’] = stuId

          stuInfo[‘age’] = age

          # 單個學生信息放入列表

          students.append(stuInfo)

          print(“添加成功!”)

def del_info():

      global students

      print(“您選擇了刪除學生功能”)

      delId=input(“請輸入要刪除的學生學號:”)

      #i記錄要刪除的下標,leap為標誌位,如果找到leap=1,否則為0

      i = 0

      leap = 0

      for temp in students:

         if temp[‘id’] == delId:

              leap = 1

              break

         else:

             i=i+1

      if leap == 0:

          print(“沒有此學生學號,刪除失敗!”)

      else:

          del students[i]

          print(“刪除成功!”)

def search_info():

  global students

  searchID=input(“請輸入你要查詢學生的學號:”)

   

      #驗證是否有此學號

  i = 0

  leap = 0

  for temp in students:

      if temp[‘id’] == searchID:

          leap = 1

          break

      else:

          i = i + 1

  if leap == 0:

      print(“沒有此學生學號,查詢失敗!”)

  else:

      print(“找到此學生,信息如下:”)

      print(“學號:%s\n姓名:%s\n年齡:%s\n”%(temp[‘id’],temp[‘name’],temp[‘age’]))

def print_all_info():

      print(“序號\t\t學號\t\t姓名\t\t年齡”)

      for temp in students:

              print(“sno:%s,stuName:%s,stuAge:%s”  %(temp[‘id’],temp[‘name’],temp[‘age’]))

              print(“*”*20)

   

def loda_data():

#加在之前存儲的數據

global students

f = open(“info_data.data”)

content = f.read()

info_list = eval(content)

f.close()

def main():

#加在數據(先存好數據,在打開這個數據直接讀取數據)

#load_data()

while True:

#1.打印工程

meun()

#2.獲取用戶的選擇

key = input(“請輸入要進行的操作):”)

#3.根據用戶的選擇,作出相應的事件

if key == “1”:

add_new_info()

elif key == “2”:

del_info()

elif key == “3”:

search_info()

elif key == “4”:

print_all_info()

elif key == “5”:

save_data()

elif key == “0”:

exit_flag = input(“你確定要退出嗎?(yes or no)”)

if exit_flag == “yes”:

break

else:

print(“輸入有誤,請重新輸入。。。”)

input(“\n\n\n按回車鍵可以繼續。。。”)

continue

#程序開始

main()

摘自 網頁鏈接——————————————————————-

請採納,謝謝

python 怎樣創建一個字典

1.傳統的文字表達式:

d={‘name’:’Allen’,’age’:21,’gender’:’male’} d

{‘age’: 21, ‘name’: ‘Allen’, ‘gender’: ‘male’}123

如果你可以事先拼出整個字典,這種方式是很方便的。

2.動態分配鍵值:

d={} d[‘name’]=’Allen’ d[‘age’]=21 d[‘gender’]=’male’ d

{‘age’: 21, ‘name’: ‘Allen’, ‘gender’: ‘male’}123456

如果你需要一次動態地建立一個字典的一個字段,那麼這種方式比較合適。

字典與列表不同,不能通過偏移量進行複製,只能通過鍵來讀取或賦值,所以也可以這樣為字典賦值,當然訪問不存在的鍵會報錯:

d[1]=’abcd’ d

{1: ‘abcd’, ‘age’: 21, ‘name’: ‘Allen’, ‘gender’: ‘male’} d[2]

Traceback (most recent call last):

File “pyshell#9”, line 1, in module

d[2]

KeyError: 212345678

3.字典鍵值表

c = dict(name=’Allen’, age=14, gender=’male’) c

{‘gender’: ‘male’, ‘name’: ‘Allen’, ‘age’: 14}123

因為這種形式語法簡單,不易出錯,所以非常流行。

這種形式所需的代碼比常量少,但是鍵必須都是字符串才行,所以下列代碼會報錯:

c = dict(name=’Allen’, age=14, gender=’male’, 1=’abcd’)SyntaxError: keyword can’t be an expression12

4.字典鍵值元組表

e=dict([(‘name’,’Allen’),(‘age’,21),(‘gender’,’male’)]) e

{‘age’: 21, ‘name’: ‘Allen’, ‘gender’: ‘male’}123

如果你需要在程序運行時把鍵和值逐步建成序列,那麼這種方式比較有用。

5.所有鍵的值都相同或者賦予初始值:

f=dict.fromkeys([‘height’,’weight’],’normal’) f

{‘weight’: ‘normal’, ‘height’: ‘normal’}

python中字典的使用方法怎麼樣的?

字典理解如下

另一個非常有用的 Python 內建數據類型是 字典 (參見 Mapping Types — dict )。字典在某些語言中可能稱為 聯合內存 ( associative memories )或 聯合數組 ( associative arrays )。序列是以連續的整數為索引,與此不同的是,字典以 關鍵字 為索引,關鍵字可以是任意不可變類型,通常用字符串或數值。如果元組中只包含字符串和數字,它可以作為關鍵字,如果它直接或間接的包含了可變對象,就不能當作關鍵字。不能用列表做關鍵字,因為列表可以用索引、切割或者 append() 和 extend() 等方法改變。

理解字典的最佳方式是把它看作無序的鍵: 值對 (key:value 對)集合,鍵必須是互不相同的(在同一個字典之內)。一對大括號創建一個空的字典: {} 。初始化列表時,在大括號內放置一組逗號分隔的鍵:值對,這也是字典輸出的方式。

字典的主要操作是依據鍵來存儲和析取值。也可以用 del 來刪除鍵:值對(key:value)。如果你用一個已經存在的關鍵字存儲值,以前為該關鍵字分配的值就會被遺忘。試圖從一個不存在的鍵中取值會導致錯誤。

對一個字典執行 list(d.keys()) 將返回一個字典中所有關鍵字組成的無序列表(如果你想要排序,只需使用 sorted(d.keys()) )。[2] 使用 in 關鍵字(指Python語法)可以檢查字典中是否存在某個關鍵字(指字典)。

python中,怎麼做個字典,數句子中單詞出現的次數?

text = raw_input(“enter a sentence:”)

words = text.split()

wordscount = [words.count(elem) for elem in words]

worddict={map(None,words,wordscount)}

要完成你的目標:

我要

計算每個詞語出現的次數,

把詞語出現的次數和詞語列表組合成字典;

偽代碼出來了,程序也就有了….

python有着強大的列表解析,內建模塊使用C完成,他們很快,所以能夠調用內建模塊你就不要自己多事。

盡量按照偽代碼去完成程序,除非必須細化,否則讓python為你操作低層吧,他很聰明

第三句釋義:

對於列表元素計數有很簡單的list.count()方法。

這個語句就是利用了這個,statement for element in list fileter expression這是list的解析式。

通過這個你可以方便的將一個list解析為另一個。這一句就對list中所有的元素運用count()方法,並且建立新的list。

另外一個例子:a=[2,3,4,7,8]找到這個list中的偶數,並得到它們的平方列表

這樣寫:[elem*elem for elem in a if elem%2==0]

第四句釋義:

list有個map方法,它可以提供list的映射。map(statement,list1,list2)就是將list1,list2按照statement規則映射。我的表達式是none所以得到的結果就是簡單的[(‘this’, 3), (‘is’, 4), (‘a’, 1)]這樣的二元tuple列表。

dict函數則是針對上述list的。它能把上述list轉化為字典。

這在你做數據處理時很有好處,你可以很輕鬆的建立一個hash表。

python的強大在於簡明,遇到程序嘗試着用最簡單地方法去解決,你會很快喜歡上的。

以上^樂於與您交流

python怎麼定義一個字典

格式 :

name = { key1 : value1 , key2 : value2 ,……}

由鍵值對組成,鍵必須是不可變數據類型組成,一般是唯一的,如果重複則會覆蓋

例 :dict = { ” 性別 ” : ” 女 ” , ” 年齡 ” : 18}

python dict怎麼實現的

Python中dict對象是表明了其是一個原始的Python數據類型,按照鍵值對的方式存儲,其中文名字翻譯為字典,顧名思義其通過鍵名查找對應的值會有很高的效率,時間複雜度在常數級別O(1).dict底層實現(推薦學習:Python視頻教程)

在Python2中,dict的底層是依靠哈希表(Hash Table)進行實現的,使用開放地址法解決衝突.

所以其查找的時間複雜度會是O(1).

Dict的操作實現原理(包括插入、刪除、以及緩衝池等)

首先介紹:PyDictObject對象的元素搜索策略:

有兩種搜索策略,分別是lookdict和lookdict_string,lookdict_string就是lookdict在對於PyStringObject進行搜索時的特殊形式,那麼通用的搜索策略lookdict的主要邏輯是:

(1)對第一個entry的查找:

a)根據hash值獲得entry的索引

b)若entry處於unused態,則搜索結束;若entry所指向的key與搜索的key相同,則搜索成功

c)若當前entry處於dummy態,則設置freeslot(這裡的freeslot是可以返回作為下一個立即可用的地址來存儲entry)

d)檢查Active態的entry,若其key所指向的值與搜索的值相同,則搜索成功

(2)對剩餘的探測鏈中的元素的遍歷查找:

a)根據所採用的探測函數,獲得探測鏈上的下一個待檢查的entry

b)檢查到一個unused態的entry,表明搜索失敗:

如果freeslot不為空,則返回freeslot;否則返回unused態的entry

c)檢查entry的key與所搜索的key的引用是否相同,相同則搜索成功,返回entry

d)檢查entry的key與所搜索的key的值是否相同,相同則搜索成功,返回entry

e)遍歷過程中,發現dummy態的entry,且freeslot未設置,則設置freeslot

接下來是:PyDictObject對象的元素插入與刪除的策略:

需要首先用到搜索策略,搜索成功,則直接將值進行替換,搜索失敗,返回unused態或dummy態的entry,設置key、value和hash值,並且根據目前插入的元素情況進行ma_table的大小的調整(調整的依據就是裝載率,根據是否大於2/3來進行調整);刪除也是類似,先計算hash值,然後搜索相應的entry,搜索成功,刪除entry中維護的元素,將entry從Active態修改為dummy態

在PyDictObject的實現過程中,會用到緩衝池,在PyDictObject對象被銷毀的時候,才開始接納被緩衝的PyDictObject對象,定義的緩衝池可接納的對象數量是80個,創建新PyDictObject對象的時候,如果緩衝池中有,則可以直接從緩衝池中取出使用

更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python dict怎麼實現的的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/156865.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 01:58
下一篇 2024-11-18 01:58

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29

發表回復

登錄後才能評論