本文目錄一覽:
- 1、用Python創建一個學生字典並可以查詢其中信息
- 2、python 怎樣創建一個字典
- 3、python中字典的使用方法怎麼樣的?
- 4、python中,怎麼做個字典,數句子中單詞出現的次數?
- 5、python怎麼定義一個字典
- 6、python dict怎麼實現的
用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-hk/n/156865.html