日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python基础知识-05-数据类型总结字典

發(fā)布時間:2023/12/10 python 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python基础知识-05-数据类型总结字典 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

python其他知識目錄

?

1、一道題,選擇商品的序號。程序員和用戶各自面對的序號起始值

如有變量 googs = ['汽車','飛機','火箭'] 提示用戶可供選擇的商品:

0,汽車
1,飛機
2,火箭
用戶輸入索引后,將指定商品的內(nèi)容拼接打印,如:用戶輸入0,則打印 您選擇的商品是汽車。

goods=["汽車","飛機","大炮"] for i in range(0,len(goods)):print(i,goods[i]) num=input("請輸入要選擇的商品序號:") num=int(num) text="您選擇的產(chǎn)品是:%s"%(goods[num]) print(text) -------------結(jié)果: 0 汽車 1 飛機 2 大炮 請輸入要選擇的商品序號:0 您選擇的產(chǎn)品是:汽車

變形:
1,汽車
2,飛機
3,火箭
用戶輸入索引后,將指定商品的內(nèi)容拼接打印,如:用戶輸入1,則打印 您選擇的商品是汽車

goods=["汽車","飛機","大炮"] for i in range(0,len(goods)): #索引是從0開始print(i+1,goods[i]) #用戶看的數(shù)字,索引+1顯示 num=input("請輸入要選擇的商品序號:") #用戶輸入的是看的數(shù)字,做索引要-1 num=int(num)-1 text="您選擇的產(chǎn)品是:%s"%(goods[num]) print(text) ------------結(jié)果: 1 汽車 2 飛機 3 大炮 請輸入要選擇的商品序號:1 您選擇的產(chǎn)品是:汽車

不改變原代碼,插入一個數(shù)字實現(xiàn)的思想

goods=["汽車","飛機","大炮"] goods.insert(0,"0") #列表前面插入一個字符 for i in range(1,len(goods)): #索引從1開始print(i,goods[i]) num=input("請輸入要選擇的商品序號:") num=int(num) text="您選擇的產(chǎn)品是:%s"%(goods[num]) print(text) ----------------結(jié)果: 1 汽車 2 飛機 3 大炮 請輸入要選擇的商品序號:1 您選擇的產(chǎn)品是:汽車

2、#1,(1)(1,)()之間類型的區(qū)別

v1=1 v2=(1) v3=(1,) v4=() print(type(v1),type(2),type(v3),type(v4)) ------------結(jié)果: <class 'int'> <class 'int'> <class 'tuple'> <class 'tuple'> # 元組記得加逗號。小括號是元組,小括號只有一個數(shù)是數(shù)字,小括號一個數(shù)字加個逗號才是元組。 [(1),(2),(3)]等價于[1,2,3],

?3、數(shù)據(jù)類型總結(jié):

int
?py2/py3
?除法
?強制轉(zhuǎn)換:
??int('字符串') 【重要】
??int(布爾值)
bool
?強制轉(zhuǎn)換:
??bool(整數(shù)) -> bool(1)/.. -> bool(0)
??bool(字符串) -> bool('xx') --> bool("")
??bool(列表) -> bool([]) --> bool([])
??bool(元組) -> bool(()) --> bool(空元組)
???v1 = bool(0)
???v2 = bool("")
???v3 = bool([])
???v4 = bool(())
???print(v1,v2,v3,v4) # False
str
?獨有功能:upper/lower/split/strip/replace/isdigit/startswith/endswith/format/join/encode
?公共公共:
??len
??索引
??切片
??步長
??for循環(huán)
??刪除【無】
??更新【無】
?強制轉(zhuǎn)換:
??str(999) # "999"
??str(True) # "True"
??str(["唐開發(fā)",'李忠偉']) # "["唐開發(fā)",'李忠偉']" --> v2 = "".join(["唐開發(fā)",'李忠偉'])
??str(["唐開發(fā)",'李忠偉'])
list
?獨有功能:append/insert/pop/remove/clear/ extend
?公共功能:
??len
??索引
??切片
??步長
??for循環(huán)
??刪除
??更新
?強制轉(zhuǎn)換:
??list("asdfadfasfdadfasfd")
???v1 = list("asdfadfasfdadfasfd")
???print(v1)
??list( (11,22,33,44,) )
???v1 = list( (11,22,33,44,) )
???print(v1)
tuple
?獨有功能【無】
?公共功能:
??len
??索引
??切片
??步長
??for循環(huán)
??刪除【無】
??更新【無】
?強制轉(zhuǎn)換:
??tuple('adfadfasdfasdfasdfafd')
???tuple([11,22,33,44])
???v1 = list("asdfadfasfdadfasfd")
??print(v1)
??v1 = list( (11,22,33,44,) )
??print(v1)
??v1 = tuple('adfadfasdfasdfasdfafd')
??print(v1)
總結(jié)
常見的類型轉(zhuǎn)換
?# 字符串轉(zhuǎn)數(shù)字
?# 數(shù)字轉(zhuǎn)字符串
?# 列表轉(zhuǎn)元組
?# 元組轉(zhuǎn)列表
?# 其他轉(zhuǎn)bool時,只有:0 “” [] ()

?

4、#字符串是數(shù)字且有空格,先去掉空格才能int()#

li=[" 8 "," 12 "] mcw=li[0]+li[1] mcw2=int(li[0])+int(li[1]) mcw3=int(" 5 ")+int(" 11 ") mcw4=int(" 12 ") print(mcw) print(mcw2,mcw3,mcw4) --------------結(jié)果:8 12 20 16 12

結(jié)論:字符類型的數(shù)字帶有空格時,使用int()函數(shù)轉(zhuǎn)化為數(shù)字時無需提前去空格。由上可得,轉(zhuǎn)化的過

程中應(yīng)該是做了去空格的操作了。

5、字典:


http://www.runoob.com/python/python-dictionary.html

5.1字典簡單理解

字典是另一種可變?nèi)萜髂P?#xff0c;且可存儲任意類型對象。

字典的每個鍵值?key=>value?對用冒號?:?分割,每個鍵值對之間用逗號?,?分割,整個字典包括在花括號?{}?中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

鍵一般是唯一的,如果重復(fù)最后的一個鍵值對會替換前面的,值不需要唯一。

>>>dict = {'a': 1, 'b': 2, 'b': '3'} >>> dict['b'] '3' >>> dict {'a': 1, 'b': '3'}

值可以取任何數(shù)據(jù)類型,但鍵必須是不可變的,如字符串,數(shù)字或元組。

一個簡單的字典實例:

dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

也可如此創(chuàng)建字典:

dict1 = { 'abc': 456 } dict2 = { 'abc': 123, 98.6: 37 }

?

5.4、#添加鍵值對以及定義空字典添加鍵值對,update?(增)

dic={} dic["name"]="mcw" dic["age"]=18 print(dic)
------------結(jié)果:
{'name': 'mcw', 'age': 18}
#原有字典.update(另一個字典) 不存在的鍵添加,存在的鍵覆蓋
userinfo={"username":"mcw","password":123456}
userinfo.update({"age":18,"password":654321})
print(userinfo)
---------------結(jié)果:
{'username': 'mcw', 'password': 654321, 'age': 18}

?

5.5#字典刪除元素pop/del(刪)

dic={"name":"mcw","age":18,"hobby":"music"} #pop刪除 dic.pop("hobby") print(dic) -----------結(jié)果: {'name': 'mcw', 'age': 18}
#del刪除 userinfo={"username":"mcw","password":123456}
del userinfo["password"]
print(userinfo)
------------------結(jié)果:
{'username': 'mcw'}

?

5.3字典的修改:(存在就修改/不存在就增加)(改)

---value 是1 "1"不一樣的注意

userinfo={"username":"mcw","password":123456} userinfo["username"]="xiaoma" print(userinfo) -------------結(jié)果: {'username': 'xiaoma', 'password': 123456}
#多個鍵值修改
userinfo={"username":"mcw","password":123456}
userinfo.update({"username":"xiaoma","password":654321})
print(userinfo)
--------------------結(jié)果:
{'username': 'xiaoma', 'password': 654321}

5.2、#取字典元素:(查),

userinfo={"username":"mcw","password":123456} print(userinfo['username']) #獲取字典中單個鍵的值 print(userinfo.keys()) #keys獲取字典中所有的鍵 print(userinfo.values()) #valuses獲取字典中所有的值 ------結(jié)果: mcw dict_keys(['username', 'password']) dict_values(['mcw', 123456])
print(type(userinfo.values()))
---------結(jié)果:
<class 'dict_values'>
userinfo={"username":"mcw","password":123456} #打印整個字典 print(userinfo) --------------結(jié)果: {'username': 'mcw', 'password': 123456}userinfo={"username":"mcw","password":123456} for v1,v2 in userinfo.items(): #items獲取所有的鍵值對 print(v1,v2) --------------結(jié)果: username mcw password 123456for循環(huán)默認只循環(huán)字典中的鍵 userinfo={"username":"mcw","password":123456} for i in userinfo:print(i) -------------結(jié)果: username password報錯:接收的多了 for item,v in userinfo:print(item,v) --------結(jié)果: for item,v in userinfo: ValueError: too many values to unpack (expected 2)

#字典.get(鍵)
“字典名["鍵"]”來取沒有的鍵會報錯。

“字典.get(鍵)”、“字典.get(鍵,鍵不存在時的返回值)”同樣能獲取字典的值,字典中沒有這個鍵的時候指定返回的值默認為none(特殊的數(shù)據(jù)類型,占內(nèi)存空間的,是空的地址轉(zhuǎn)為bool為false)

建議:盡量用get取字典,這樣可以對鍵是否存在先做個判斷

userinfo={"username":"mcw","password":123456} result1=userinfo.get("username") result2=userinfo.get("age") print(result1,result2) ---------------結(jié)果: mcw None使用形式: result=userinfo.get("") if result==None:print("鍵不存在")

5.5、#字典多行美觀顯示,注意不要忘記逗號

userinfo={"username":"mcw","password":123456 } print(userinfo) ---------結(jié)果: {'username': 'mcw', 'password': 123456}

5.6、#字典和列表嵌套構(gòu)建用戶登錄的案例

user_list=[] while True:u=input("請輸入用戶:")if u=="N":breakp=input("請輸入密碼:")v={}v["user"]=uv["pwd"]=puser_list.append(v) print(user_list) rec_str1=input("請輸入用戶:") rec_str2=input("請輸入密碼:") flag=0 for i in user_list:if i["user"]==rec_str1 and i["pwd"]==rec_str2:flag=1 if flag==1:print("請進行登錄") else:print("登錄失敗!")完善后: user_list=[] while True:u=input("請輸入用戶:")if u=="N":breakp=input("請輸入密碼:")v={}v["user"]=uv["pwd"]=puser_list.append(v) print(user_list) rec_str1=input("請輸入用戶:") rec_str2=input("請輸入密碼:") message="登錄失敗!" for i in user_list:if i["user"]==rec_str1 and i["pwd"]==rec_str2:message="登錄成功!"break print(message)
-----------------結(jié)果:
請輸入用戶:mcw
請輸入密碼:123
請輸入用戶:xiaoma
請輸入密碼:123
請輸入用戶:N
[{'user': 'mcw', 'pwd': '123'}, {'user': 'xiaoma', 'pwd': '123'}]
請輸入用戶:mcw
請輸入密碼:123
登錄成功!

5.7、單變量和雙變量接收字典items()返回值


單變量和雙變量接收字典items()返回值,單變量是循環(huán)接收字典鍵值對形成的元組,雙變量一個接收鍵
,一個接收值。

--- v="4+3" a,b=v.split("+") print(a,b) ------結(jié)果: 4 3v="4+3" a=v.split("+") print(a[0],a[1]) ------------結(jié)果: 4 3userinfo={"username":"mcw","password":123456} for i in userinfo.items():print(i,type(i)) -------結(jié)果: ('username', 'mcw') <class 'tuple'> ('password', 123456) <class 'tuple'>userinfo={"username":"mcw","password":123456} for k,v in userinfo.items():print(k,v,type(k),type(v)) ------------結(jié)果: username mcw <class 'str'> <class 'str'> password 123456 <class 'str'> <class 'int'>

5.8生成列表中每個元素都是相同鍵的字典

兩個列表元素,一個當(dāng)字典的鍵,另一列表每個元素都是字典分隔開來的值。合并成列表中有多個字典元素的方法.

li1=["name","age","hobby"] li2=["mcw,18,study","xiaoma,19,music","yh,10,eat"] print([[li1[j]+":"+li2[i].split(",")[j] for j in range(0,len(li1))] for i in range(0,len(li2))]) mcw=[{li1[j]:li2[i].split(",")[j] for j in range(0,len(li1))} for i in range(0,len(li2))] print(mcw) print(type(mcw[0])) ----------------結(jié)果: [['name:mcw', 'age:18', 'hobby:study'], ['name:xiaoma', 'age:19', 'hobby:music'], ['name:yh', 'age:10', 'hobby:eat']] [{'name': 'mcw', 'age': '18', 'hobby': 'study'}, {'name': 'xiaoma', 'age': '19', 'hobby': 'music'}, {'name': 'yh', 'age': '10', 'hobby': 'eat'}] <class 'dict'>

?

===
列表,元組嵌套。加一個字典,嵌套,意義何在呢
int/bool/str list/tuple/dict可以相互嵌套,

字典值:能放各種 所有都能當(dāng)
字典鍵 :可以有:元組,數(shù)字,布爾值,字符串
?????????????? 不可以:字典,列表 可hash的可以當(dāng)key,字典和列表是可變的,不可hash,所以不能當(dāng)鍵。

#元組 列表有序,字典無序,Python3.6之后字典有序了。

轉(zhuǎn)載于:https://www.cnblogs.com/machangwei-8/p/10643474.html

總結(jié)

以上是生活随笔為你收集整理的Python基础知识-05-数据类型总结字典的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。