python—字典

1.字典的含義:

字典和列表類似,是可變序列,與列表不同的是,字典是無序的可變序列,保存的內容是以 鍵值對 的形式存放的。鍵是唯一的,而值可以是多個。值可以取任意數據了類型,但鍵必須是不可變的。
創建一個字典:
1 . 定義字典時,每個元素都包含兩個部分“鍵(key)“和“值(value)“。
2 . 創建字典時,在鍵(key)和值(value)只見用冒號分隔,相鄰兩個元素用逗號分隔,所有元素用大括號括起來。
例如:

dic = {1: "ssh", 2: "ftp", "key": "value"}	#冒號前的為鍵,冒號后的為值
print(dic)運行結果:
{1: 'ssh', 2: 'ftp', 'key': 'value'}

創建一個空字典:

s = {}                  方法一
print(s)運行結果:
{}d = dict()             方法二
print(d)運行結果:
{}

字典的鑲套:

student = {'123':{'name':'tom','age':18,'score':99},'456':{'name':'lily','age':19,'score':100}
}print(student['123']['name'])運行結果為:
tom

2. 字典的特征:

1 . 通過鍵(key)而不是通過索引來讀取字典

d = {'1':'a','2':'b'
}
print(d['1'])運行結果:
a

2 . 成員操作符(針對key)

d = {'1':'a','2':'b'
}
print('1' in d)
print('1' not in d)運行結果:
True
False

3 . for循環 針對key

d = {'1':'a','2':'b'
}
for key in d:print(key)運行結果:
1
2

4 . 遍歷字典,輸出字典的key和對應的值

d = {'1':'a','2':'b'
}
for key in d:print(key,d[key])運行結果:
1 a
2 b

3 . 字典元素的查看、增加、刪除

1 . 查看字典的值:

service = {'http':80,'ftp':23,'ssh':22
}
print(service.keys())      查看字典的key值運行結果:
dict_keys(['http', 'ftp', 'ssh'])print(service.values())         查看字典的value值運行結果:
dict_values([80, 23, 22])print(service.items())          查看字典的key-value值運行結果:
dict_items([('http', 80), ('ftp', 23), ('ssh', 22)])print(service['http'])             通過key值查找value值(key值不存在時會報錯)運行結果:
80print(service.get('http'))       使用get查看key的value值,若key存在,返回對應的value值運行結果:
80print(service.get('https','443'))         若key不存在,返回None 或者設定好的默認值。運行結果:
443

2 . 字典元素的增加:

service = {'http':80,'ftp':23,'ssh':22
}
service['https'] = 443
print(service)                     如果key值不存在,則添加對應的key-value值運行結果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'https': 443}service['ftp'] = 21
print(service)                  如果key值存在,則更新對應的value值運行結果:
{'http': 80, 'ftp': 21, 'ssh': 22}service_backup = {'tomcat':8080,'mysql':3306
}
service.update(service_backup)        增加多個key值
print(service)運行結果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'tomcat': 8080, 'mysql': 3306}或者可以這樣寫:
service.update(flask=9000,dns=53)
print(service)運行結果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'flask': 9000, 'dns': 53}service.setdefault('http',9090)           如果key值存在:不做修改
print(service)運行結果:
{'http': 80, 'ftp': 23, 'ssh': 22}service.setdefault('oracle',44575)       如果key值不存在,則添加對應的key-value
print(service)運行結果:
{'http': 80, 'ftp': 23, 'ssh': 22, 'oracle': 44575}

3 . 字典元素的刪除:

service = {'http':80,'ftp':23,'ssh':22
}
del service['http']             刪除key值和value值
print(service)運行結果:
{'ftp': 23, 'ssh': 22}item = service.pop('http')             pop刪除指定key對應的value值
print(item)       如果key存在,刪除,并且返回刪除key對應的value(可以用變量取接收)
print(service)                      如果不存在,直接報錯運行結果:
80
{'ftp': 23, 'ssh': 22}item = service.popitem()               popitem刪除最后一個key-value值
print(item)
print(service)運行結果:
('ssh', 22)
{'http': 80, 'ftp': 23}service.clear()          清空字典內容
print(service)運行結果:
{}

練習:
1 . 數字重復統計:
1). 隨機生成1000個整數;
2). 數字的范圍[20, 100],
3). 升序輸出所有不同的數字及其每個數字重復的次數;

import random
all_num = []for item in range(1000):all_num.append(random.randint(20,100))# 對生成好的1000個數進行排序,然后加到子字典里
sorted_num = sorted(all_num)
num_dict ={}for num in sorted_num:if num in num_dict:num_dict[num] += 1else:num_dict[num] = 1print(num_dict)

2 . 重復的單詞: 此處認為單詞之間以空格為分隔符, 并且不包含,和 . ;
# 1. 用戶輸入一句英文句子;
# 2. 打印出每個單詞及其重復的次數;

s = input('s:')
# 1.把每個單詞分割處理
s_li = s.split()
print(s_li)
# 通過字典存儲單詞和改單詞出現的次數
word_dict = {}
for item in s_li:if item not in word_dict:word_dict[item] = 1else:word_dict[item] += 1
print(word_dict)

3 . 隨機生成100個卡號;
1 .卡號以6102009開頭, 后面3位依次是 (001, 002, 003, 100),
2. 生成關于銀行卡號的字典, 默認每個卡號的初始密碼為"redhat";
3. 輸出卡號和密碼信息, 格式如下:

 卡號               密碼 6102009001         000000

代碼如下:

card_ids =[]
# 生成100個卡號
for i in range(100):# %.3d:代表整型數占3位s = '6102009%.3d' %(i+1)# 將每次生成的卡號都加入到列表中card_ids.append(s)card_ids_dict = {}.fromkeys(card_ids,'redhat')
# print(card_ids_dict)
print('卡號\t\t\t\t\t密碼')
for key in card_ids_dict:print('%s\t\t\t%s' %(key,card_ids_dict[key]))

4 . 判斷101-200之間有多少個素數,并輸出所有素數

hah_li = []
for i in range(101,200):for k in range(2,i):if i%k == 0:breakelse:hah_li.append(i)
print(hah_li)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542106.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542106.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542106.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

js中加“var”和不加“var”的區別,看完覺得這么多年js白學了

Javascript聲明變量的時候,雖然用var關鍵字聲明和不用關鍵字聲明,很多時候運行并沒有問題,但是這兩種方式還是有區別的。可以正常運行的代碼并不代表是合適的代碼。var num 1; 是在當前域中聲明變量. 如果在方法中聲明&#xff0…

解決方案_智能工廠全套解決方案

最近弱電社群資料更新情況:1、弱電學習圈VIP群資料整理-希望對您有用!2、弱電學習圈VIP技術交流2群成立,歡迎您加入!3、智慧校園整體解決方案!4、智能化弱電項目管理表單大全-弱電項目經理必備!5、弱電項目…

退火算法 貪婪算法_算法貪婪策略簡介

退火算法 貪婪算法介紹 (Introduction) The solution is determined by a sequence of steps each step has given a particular solution and later a complete solution to given the problem can be achieved. In short, while making a choice there should be a greed for…

windows 2008 R2系統安裝撥號v p n詳細配置

windows 2008 R2系統單網卡安裝撥號v p n系統環境:windows 2008 R2操作步驟首先設置服務端在服務器管理器中添加角色“網絡策略和訪問服務”,并安裝以下角色服務右擊路由與遠程訪問,選擇“配置并啟用路由和遠程訪問”右擊路由與遠程訪問&…

python—函數

1. 函數的定義: 1 . 含義:我們把實現某一功能的代碼定義為一個函數,在需要使用時,隨時調用,十分方便。對于函數,簡單理解就是可以完成某功能的代碼塊,可反復使用。 Python提供了許多內建函數&a…

word打開老是配置進度_小白教程 | office出現配置進度框,怎么辦?

最近很多同學在備考二級時候,自己的電腦上office軟件Word或者Excel出問題了,每次打開都會出現配置進度框。這種情況怎么辦呢?這種情況都是注冊表的問題,馬上安排解決之前在 右鍵菜單沒有office新建怎么辦(點擊即可閱讀)也是用注冊…

【踩坑速記】開源日歷控件,順便全面解析開源庫打包發布到Bintray/Jcenter全過程(新),讓開源更簡單~...

一、寫在前面 自使用android studio開始,就被它獨特的依賴方式:compile com.android.support:appcompat-v7:25.0.1所深深吸引,自從有了它,麻麻再也不用擔心依賴第三方jar包繁瑣無趣啦。而,如果自己寫一個開源庫是一種怎…

scala集合中添加元素_如何在Scala中獲得列表的第一個元素?

scala集合中添加元素清單 (List) A list is a linear data structure. It is a collection of elements of the same data types. 列表是線性數據結構。 它是相同數據類型的元素的集合。 Scala libraries have many functions to support the functioning of lists. Methods l…

python—列表、字典生成式

1 列表生成式 Python內置的一種極其強大的生成列表 list 的表達式。返回結果必須是列表。 示例: 需求1:接收變量 k a b s 51 5000 10000 a s.split() li [] for item in s.split():li.append(int(item)) k,a,b li print(k,a,b)運行結果:…

excel數據平均分配給多人_excel表格 怎樣均分數據-用Excel怎么才能將組數據平均分配給幾個人...

怎樣在Excel表格中求平均數?在excel中怎樣自動生成各班各科的平均成績可以調用Excel函數庫的函實現。步驟如下:1. 在單元格內點擊上公式-平均值”。2. 點擊需要參與計算的單元格數據,符號用鍵盤輸入,最后回車即可。百度百科-Excel函數exce…

Java中List和Map接口之間的區別

列表與地圖界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we will see the points given below, 在這里,我們將看到List與Java中的Map接口有何不同,并且我們將看到以下幾點, 列表界面 (…

python—高階函數

什么是內置高階函數: 一個函數可以作為參數傳給另外一個函數,或者一個函數的返回值為另外一個函數(若返回值為該函數本身,則為遞歸),滿足其一則為高階函數。 Python中內置了幾個常用的高階函數,…

功能區不顯示工具條_【新老客戶必知】軟件支持超高清屏顯示器了

隨著計算機硬件的不斷更新換代顯示設備的不斷更新從原來的分辨率640 X 480啥原來分辨這么低呀?還記得DOS嗎?或者Win95,win98嗎當時顯示器分辨率能調到800X 600很好了2000年左右隨著純平顯示器的推出也有了高清顯示器的概念那么一般我們說的高清顯示器分辨…

nginx1.10.2源碼安裝配置參數參考

[rootlocalhost nginx-1.10.2]# ./configure --help--help print this message--prefixPATH set installation prefix #Nginx安裝的根路徑,默認為 /usr/local/nginx。--sbin-pathPATH set nginx binary pathname #指定nginx二進制文件的路徑,默認為PATH/sbin/n…

c ++查找字符串_C ++朋友功能| 查找輸出程序| 套裝1

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int A, B;friend void fun();};void fun(){Sample S;S.A 10;S.B 20;cout << S.A << " " << S.B << endl;}int main(){fun();retu…

Spring定時器的運用

為什么80%的碼農都做不了架構師&#xff1f;>>> 一、spring4定時器任務配置如下&#xff1a; <bean id"jsapiTask" class"chan.ye.dai.wexin.JsapiTicketTimeTask" /><bean id"jobDetail"class"org.springframework.s…

python—裝飾器

裝飾器概念&#xff1a; 把一個函數當作參數傳遞給一個函數&#xff0c;返回一個替代版的函數 本質上就是一個返回函數的函數 在不改變原函數的基礎上&#xff0c;給函數增加功能 python 中裝飾器做的事情&#xff01;它們封裝一個函數&#xff0c;并且用這樣或者那樣的方式來修…

ad18原理圖器件批量修改_Altium Designer 15原理圖設計基礎

Altium Designer 15成為越來越多電子設計開發工程師EDA電路設計軟件的首選&#xff0c;在學校學習Altium Designer的也越來較多&#xff0c;像單片機開發學習一樣&#xff0c;EDA設計只要學會了&#xff0c;再學其他的設計軟件就容易多了。上一節分享了《Altium Designer 15集成…

c++freopen函數_使用示例的C語言中的freopen()函數

cfreopen函數C語言中的freopen()函數 (freopen() function in C) Prototype: 原型&#xff1a; FILE* freopen(const char *str, const char *mode, FILE *stream);Parameters: 參數&#xff1a; const char *str, const char *mode, FILE *streamReturn type: FILE* 返回類型…

python—文件

1 . 文件的基本操作&#xff1a; 文件讀取三部曲&#xff1a; 打開操作關閉&#xff08;如果不關閉會占用文件描述符&#xff09; 打開文件&#xff1a; f open(/tmp/passwdd,w)操作文件&#xff1a; 1 . 讀操作&#xff1a; f.read()content f.read()print(content) 2 …