字典
字典是“鍵值對”的無序可變序列,字典中的每一個元素都是一個“鍵值對”
“鍵” 是任意的不可變資料,比如:整數、浮點數、字串、元組,
但是:串列、字典、集合這些可變物件,不能作為“鍵”,且“鍵”不可重復
值可以是任意資料,可重復,
一個字典的定義方式:
a={'name':'gaoqi','age':'18','job':'programmer'}
字典的創建
1.通過{}、dict()來創建字典
a={'name':'gaoqi','age':'18','job':'programmer'}
b=dict(name='gaoqi',age='18',job='programmer')
a=dict([('name','gaoqi'),('age',18)])
c={} # 空的字典物件
d=dict() # 空的字典物件
2.通過zip()創建字典物件
k=['name','age','job']
v=['gaoqi','18','teacher']
d=dict(zip(k,v))
3.通過fromkeys創建值為空的字典
a=dict.fromkeys(['name','age','job'])
>>> a=dict.fromkeys(['name','age','job'])
>>> a
{'name': None, 'age': None, 'job': None}
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> a
{'name': 'gaoqi', 'age': '18', 'job': 'programmer'}
>>> b=dict(name='gaoqi',age='18',job='programmer')
>>> b
{'name': 'gaoqi', 'age': '18', 'job': 'programmer'}
>>> a=dict([('name','gaoqi'),('age',18)])
>>> a
{'name': 'gaoqi', 'age': 18}
>>> c={}
>>> d=dict()
>>> k=['name','age','job']
>>> v=['gaoqi','18','teacher']
>>> d=dict(zip(k,v))
>>> d
{'name': 'gaoqi', 'age': '18', 'job': 'teacher'}
# 字典元素的訪問
a={'name':'gaoqi','age':'18','job':'programmer'}
1.通過[鍵]獲得"值",
若鍵不存在,則拋出例外
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> a['name']
'gaoqi'
2.通過get()方法獲得"值",推薦使用,優點:指定鍵不存在,回傳None;也可以設定
指定鍵不存在時默認回傳的物件,推薦使用get()獲取"值物件"
a.get('name')
>>> a.get('name')
'gaoqi'
>>> a.get('dddd')
>>> a
{'name': 'gaoqi', 'age': '18', 'job': 'programmer'}
>>> print(a.get('dddd'))
None
>>> a.get('dddd','不存在')
'不存在'
>>> a.items()
dict_items([('name', 'gaoqi'), ('age', '18'), ('job', 'programmer')])
# 字典元素的添加修改和洗掉
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> a['address']='西三旗1號院'
>>> a['age']=16
>>> a
{'name': 'gaoqi', 'age': 16, 'job': 'programmer', 'address': '西三旗1號院'}
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> b={'name':'gaoqi','money':'40000','sex':'男'}
>>> a.update(b)
>>> a
{'name': 'gaoqi', 'age': '18', 'job': 'programmer', 'money': '40000', 'sex': '男'}
3.字典中元素的洗掉,可以使用del();或者clear()洗掉
>> a={'name': 'gaoqi', 'age': 16, 'job': 'programmer', 'address': '西三旗1號院'}
>>> del(a['name'])
>>> a
{'age': 16, 'job': 'programmer', 'address': '西三旗1號院'}
>>> b=a.pop('age')
>>> b
16
4.popitem():隨機洗掉和回傳改鍵值對,字典是“無序可變序列”,因此沒有第一個元素、最后
一個元素的概念;popitem彈出隨機的項,因為字典并沒有“最后元素”或者其他有關順序的概念,
若想一個接一個的移除并處理項,這個方法就非常有效,
>>> a={'name':'gaoqi','age':'18','job':'programmer'}
>>> a.popitem()
('job', 'programmer')
>>> a
{'name': 'gaoqi', 'age': '18'}
>>> a.popitem()
('age', '18')
>>> a
{'name': 'gaoqi'}
# 序列解包
序列解包可以用于元組、串列、字典,序列解包可以讓我們方便的對多個變數賦值,
x,y,z=(20,30,10)
>>> x,y,z=(20,30,10)
>>> x
20
>>> y
30
>>> z
10
[a,b,c]=[10,20,30]
>>> [a,b,c]=[10,20,30]
>>> a
10
>>> b
20
序列包用于字典時,默認是對"鍵"進行操作;如果需要對鍵值對操作,則需要使用
items();如果需要對“值”進行操作,則需要使用values();
s={'name':'gaoqi','age':'18','job':'programmer'}
>>> name,age,job=s
>>> name
'name'
>>> name,age,job=s.items()
>>> name
('name', 'gaoqi')
>>> name,age,job=s.values()
>>> name
'gaoqi
# 表格資料使用字典和串列存盤,并實作訪問
源代碼
r1={'name':'高小一','age':'18','salary':'30000','city':'北京'}
r2={'name':'高小二','age':'19','salary':'20000','city':'上海'}
r3={'name':'高小五','age':'20','salary':'10000','city':'深圳'}
tb=[r1,r2,r3]
# 獲得第二行人的薪資
print(tb[1].get('slary'))
# 列印表中所有人的薪資
for i in range (len(tb)):
>> > print(tb[1].get('salary'))
20000
>> > for i in range(len(tb)):
print(tb[i].get('salary'))
30000
20000
10000
# 列印表的所有資料
for i in range (len(tb)):
print(tb[i].get('name'),tb[i].get('age'),tb[i].get('salary'),tb[i].get('city'))
print(tb[i].get('name'), tb[i].get('age'), tb[i].get('salary'), tb[i].get('city'))
高小一
18
30000
北京
高小二
19
20000
上海
高小五
20
10000
深圳
# 1.使用{}創建集合物件,并使用add()方法添加元素
>>> a={3,5,7}
>>> a
{3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
# 2.使用set(),將串列、元組等可迭代物件轉成集合,如果原來資料存在重復資料,則只保留一個,
>>> a={3,5,7}
>>> a
{3, 5, 7}
>>> a.add(9)
>>> a
{9, 3, 5, 7}
>>> a =['a','b','c','d']
>>> b=set(a)
>>> b
{'a', 'd', 'c', 'b'}
3.remove()洗掉指定元素;clear()清空整個集合
a.={10,20,30,40,50}
a.remove(20)
>>> a={10,20,30,40,50}
>>> a.remove(20)
>>> a
{40, 10, 50, 30}

# a=input('請輸入一個小于10的數字:')
# if int(a)<10:
# print(a)
# 條件運算式
#
# b = []
# if not b:
# print('空的串列是false')
# c = "True" # 非空字串
# if c:
# print('c')
# d=10
# if d:
# print("3<d<10")
# if 3<d<100:
# print(d)
# # 條件運算式中不能有賦值運算子“=”
# s = input('請輸入一個數字:')
# if int(s)<10:
# print(s)
# # 測驗三元條件運算子
# print("s是小于10的數字" if int(s)<10 else "s是大于等于10的數字")
# 多分支結構
# score =int(input("請輸入分數:"))
# grade = ""
# if score<60:
# grade = "不及格"
# elif score<80: # 60~80之間
# grade = "良好"
# else:
# grade = "優秀"
# print("分數是{0},等級是{1}".format(score,grade))
score = int(input("請輸入一個分數"))
if score>100 or score<0:
score = int(input("輸入錯誤!請重新輸入一個在0-100之間的數字"))
else:
if score>=90:
grade = "A"
elif score>=80:
grade = "B"
elif score>=70:
grade = "C"
elif score>=60:
grade = "D"
else:
grade = "E"
print("分數為{0},等級為{1}".format(score,grade))
print("**************************************************")
score = int(input("請輸入一個分數"))
degree = "ABCDE"
num = 0
if score>100 or score<0:
print("請輸入一個0-100的分數")
else:
num = score//10
if num<6:
num=5
print(dgree[9-num])
# while回圈
# 利用while回圈列印從0-10的數字,
# num = 0
# while num <=100:
# print(num,end="\t")
# num+=1
# print("***************************")
num2 = 0
sum_all = 0
while num2<=100:
sum_all =sum_all + num2
num2 +=1
print("1-10所有數的累加:",sum_all)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/378661.html
標籤:其他
上一篇:anaconda安裝CV2包
下一篇:子類的向量
