程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python——字典與集合的基本使用

編輯:Python

字典

字典的概述:
字典是一個無序的,可以修改的,元素呈鍵值對的形式,以逗號分割的,以大括號包圍的數據類型;
字典和列表一樣,可以存儲多個數據,但是字典中的值並沒有什麼特殊順序;列表中,查找某個元素時,是通過下標進行的,但是如果下標很多,查找元素不方便,這時就需要用到字典。
字典的每個元素由兩部分組成,鍵:值。例如:‘name’:‘hu’ , name為鍵,hu為值。

字典是Python基礎數據類型當中唯一一個映射關系的數據類型;

先來定義一個字典:

message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}

在定義的字典中,每一個鍵對應一個相應的值,那麼鍵與值是不是只能一對一呢?可以試著看下:

message = {
'name':'jake','hu','age':19,'love':'kongfu'}#在鍵name後面加上'hu',使其對應兩個值
print(message)

看結果:

File "<ipython-input-4-39b28704af5a>", line 1
message = {
'name':'jake','hu','age':19,'love':'kongfu'}#在鍵name後面加上'hu',使其對應兩個值
^
SyntaxError: invalid syntax

SyntaxError: invalid syntax語法錯誤,是一種編譯錯誤,python編譯器在處理的時候,發現語法不規范,發出編譯錯誤。所以,這樣看來,鍵與值是一一對應的關系,鍵後面只能有一個值,但是這個值可以是字符串,可以是數字,那麼是否可以為列表,元組呢?
實踐是檢驗真理的唯一標准,話不多說,上代碼:

message = {
'name':['jake','hu'],'age':19,'love':'kongfu'}#在鍵後面用列表來存儲值,這樣在列表中就可以存儲多個’值‘
print(message)
{
'name': ['jake', 'hu'], 'age': 19, 'love': 'kongfu'}

如果將元組放在值的位置,同樣會報錯,具體原因這裡不做闡述。
獲取字典中元素

  1. 利用鍵名

字典中的元素都是通過鍵名來訪問的,當我們想要獲取某一個值,只需要指出對應的鍵名,就可以得到相應的值。例如:

message = {
'name':'jake','age':19,'love':'kongfu'}
print(message['name'])
print(message['age'])
jake
19
  1. get方法
    例如:通過get()函數來對字典中值進行查找
message = {
'name':'jake','age':19,'love':'kongfu'}
print(message.get('name'))
print(message.get('age'))
print(message.get('favorite'))#注意:get方法如果沒有找到相應的值,就會輸出None,後面也可以帶默認的值。
jake
19
None

字典中元素的添加修改
在字典中,想要添加鍵值對,采用直接添加的方式,直接將鍵和值定義在這個字典中就可以了。例如:

message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
message['height'] = 182
print(message)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
{
'name': 'jake', 'age': 19, 'love': 'kongfu', 'height': 182}

修改字典中的值也是直接指出鍵名,然後將新的值賦給這個鍵名就可以了。例如:

message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
message['age'] = 21
print(message)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
{
'name': 'jake', 'age': 21, 'love': 'kongfu'}
​

字典中元素的刪除

  1. 字典中對鍵值對的刪除,是用del進行直接刪除
message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
del message['age']
print(message)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
{
'name': 'jake', 'love': 'kongfu'}
  1. pop(),彈出,返回並刪除對應指定鍵的值
message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
num = message.pop('age')#彈出,並刪除指定鍵的值
print(num)
print(message)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
19
{
'name': 'jake', 'love': 'kongfu'}
  1. 隨機彈出一個鍵值元組(隨機的原因是因為字典無序)
message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
num = message.popitem()#隨機彈出一個鍵值元組
print(num)
print(message)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
('love', 'kongfu')
{
'name': 'jake', 'age': 19}
  1. clear 清空字典
message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
message.clear()
print(message)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
{
}

Python字典的特點

  1. 字典是無序的,所以字典沒有索引值;
  2. 字典沒有索引值,所以字典以鍵取值,(字典的鍵相當於列表的索引);
  3. 字典以鍵取值,所以字典的鍵唯一且不可修改;
  4. 字典的鍵不可修改,所以列表和字典等可變類型的數據不可以給字典做鍵。

字典中的一些常見操作

message = {
'name':'jake','age':19,'love':'kongfu'}
print(message.keys())#返回一個包含字典所有key的列表
print(message.values())#返回一個包含字典所有value的列表
#設置默認,如果鍵存在,返回值,如果鍵不存在,創造鍵,值默認為None,值也可以自定義setdefault(key,default=None)
print(message.setdefault('play'))
#以字典的格式更新指定鍵內容,若不存在,則創建鍵和值
print(message.update({
'play':'pingpang'}))
print(message)
print(message.items())#返回字典的鍵值以元組的方式
#測量字典,鍵值對的個數
print(message)
print(len(message))#測量字典,鍵值對的個數
dict_keys(['name', 'age', 'love'])
dict_values(['jake', 19, 'kongfu'])
None
None
{
'name': 'jake', 'age': 19, 'love': 'kongfu', 'play': 'pingpang'}
dict_items([('name', 'jake'), ('age', 19), ('love', 'kongfu'), ('play', 'pingpang')])
{
'name': 'jake', 'age': 19, 'love': 'kongfu', 'play': 'pingpang'}
4

如何判斷一個值是否再字典中?如下:

message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
```python
#判斷指定的鍵是否在字典當中,在,返回True,否則,返回False
'name' in message
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
True

字典的遍歷 通過for … in …:的語法結構,我們可以遍歷字符串、列表、元組、字典等數據結構。例如:

message = {
'name':'jake','age':19,'love':'kongfu'}
print(message)
for i in message:#遍歷鍵
print(i)
for j in message.values():#遍歷值
print(j)
{
'name': 'jake', 'age': 19, 'love': 'kongfu'}
name
age
love
jake
19
kongfu

集合

集合的定義:集合是一種無序不重復的元素集合,集合與之前元素列表類似,可以存儲多個數據,但是這些數據是不重復的。

可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。
集合對象還支持交集(intersection),差集(difference)、並集和對稱差集(sysmmetric_difference)

s1 = {
1,2,3,4,5,5}#創建一個集合
print(s1)#通過打印可以看出集合裡面沒有相同的元素
s2 = set('34567')#通過set()函數創建集合,無序
s3 = set('1234')
print(s2)
print(s3)
#集合還支持交集,差集,並集和對稱差集
print(s2&s3)#交集:&兩個集合的公共部分
print(s2|s3)#並集:|兩集合合並,沒有重復元素
print(s2-s3)#差集:-只有前項有的元素,不存在後項中的元素。
print(s2^s3)#對稱差集(^):只存在a或者b中,但是不會同時出現在二者中
type(s1)#查看數據類型
{
1, 2, 3, 4, 5}
{
'6', '7', '5', '4', '3'}
{
'4', '1', '3', '2'}
{
'4', '3'}
{
'6', '1', '7', '2', '5', '4', '3'}
{
'5', '6', '7'}
{
'6', '7', '2', '5', '1'}
set

集合的增添刪除操作

s1 = {
1,2,3,4,5}
print(s1)
# add(),為集合無規律添加元素
s1.add('jk')
print(s1)
# update()也可以添加元素,且參數可以是不同類型,並用逗號分隔開
s1.update('8','9',[6,7])#不能直接加int類型,否則報錯
print(s1)
#remove(),刪除集合中的指定元素,當指定的元素不存在的時候會報錯
s1.remove(1)
print(s1)
#discard(),是刪除集合中的指定元素,且如果元素不存在的時候,不會報錯
s1.discard('jk')
s1.discard('aj')
print(s1)
#pop(),無邏輯刪除元素
s1.pop()
print(s1)
{
1, 2, 3, 4, 5}
{
1, 2, 3, 4, 5, 'jk'}
{
1, 2, 3, 4, 5, 'jk', '8', 6, 7, '9'}
{
2, 3, 4, 5, 'jk', '8', 6, 7, '9'}
{
2, 3, 4, 5, '8', 6, 7, '9'}
{
3, 4, 5, '8', 6, 7, '9'}

以上就是關於集合與字典的一些日常基本操作了。


  1. 上一篇文章:
  2. 下一篇文章:
相關文章
    没有相关文章
Copyright © 程式師世界 All Rights Reserved