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

歡迎訪問 生活随笔!

生活随笔

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

python

(三)PYTHON字典 元祖 列表尝试应用

發(fā)布時(shí)間:2024/7/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (三)PYTHON字典 元祖 列表尝试应用 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
(三)PYTHON字典 元祖 列表嘗試應(yīng)用

?

1、 使用 join 方法將下劃線添加到列表的每一個(gè)元素拼接成字符串,li?=?['alex', 'eric', 'rain']

li = ['boom', 'TNT', 'zhadan'] daying = "_".join(li) print(daying)

2、 查找列表中元素,移除每個(gè)元素的空格,并查找以?a?或?A?開頭?并且以?c?結(jié)尾的所有元素。

li = ["alec", " aric", "Alex", "Tony", "rain"]

tu = ("alec", " aric", "Alex", "Tony", "rain")

dic = {'k1': "alex", 'k2': ' aric',"k3": "Alex", "k4": "Tony"}

將三個(gè)字段合并到一起 然后進(jìn)行判斷可節(jié)省代碼量:

txts=li+list(tu)+list(dic.values)for txt in txts:print(txt.strip())for txt in txts:txt.lower()if txt.startswith("a") and txt.endswith("c"):print(tu)

列表: []

li?=?['alex', 'eric', 'rain']

a.計(jì)算列表長度并輸出? 使用 len 函數(shù)即可

long =len(li)

b.?列表中追加元素?“seven”,并輸出添加后的列表? 使用 append 函數(shù)即可

li.append("seven")

c.?請?jiān)诹斜淼牡?1?個(gè)位置插入元素?“Tony”,并輸出添加后的列表? 使用 insert 函數(shù)即可

li.insert(0,"Tony")

d.?請修改列表第?2?個(gè)位置的元素為?“Kelly”,并輸出修改后的列表 使用切片器修改

li[1]="kelly"

e.?請刪除列表中的元素?“eric”,并輸出修改后的列表? ?使用remove 專門查找刪除

li.remove("eric")

f.?請刪除列表中的第?2?個(gè)元素,并輸出刪除的元素的值和刪除元素后的列表? 使用 pop 函數(shù)

daying=li.pop(1) print(daying,li)

g.??請將列表所有的元素反轉(zhuǎn),并輸出反轉(zhuǎn)后的列表? 使用 reverse 轉(zhuǎn)置

li.reverse() print(li)

h.?請使用?enumrate?輸出列表元素和序號(序號從?100?開始) 使用 enumerate 來導(dǎo)出序號

i=enumerate(li) print(i)

?

?

元組 ()

元組的大部分可用函數(shù)和列表并沒有什么,主要的區(qū)別在于 元組的第一層元素不可變動(dòng),不可添加,不可刪除。

字典{}

字典當(dāng)中可使用的大部分函數(shù)也相同, 但是和元組、列表不一樣的特點(diǎn)是 字典里面的內(nèi)容是無序的,其他兩個(gè)確是有序的。

dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}

使用 keys()、values()? items() 可以分別輸出 字典的 key、值和整個(gè)元素

使用 update? 可以更新字典 如字典中無,則添加進(jìn)去

dic.update(k4="v4") print(dic)

setdefault 也可以添加

dic.setdefault("k1","hah") print(dic)

使用 list() 、 tuple() 、dict() 、 可分別轉(zhuǎn)換為 列表 元組 字典

布爾值是false的值的有:

0 {} [] () none “”

3、元素分類

有如下值集合?[11,22,33,44,55,66,77,88,99,90],將所有大于?66?的值保存至字典的第一個(gè)?key?中,將小于?66?的值保存至第二個(gè)key?的值中。

這個(gè)是將數(shù)值保存到同一個(gè)位置中

lis=[11,22,33,44,55,66,77,88,99,90] dic={'k1':0 ,'k2':0 } for li in lis:if li > 66 :dic['k1']+=liif li <= 66 :dic['k2']+=li print(dic.items())

這個(gè)是將所有字段保存到同一個(gè)位置當(dāng)中

lis=[11,22,33,44,55,66,77,88,99,90] dic={'k1':"" ,'k2':"" } for li in lis:if li > 66 :dic['k1']+=str(li)if li <= 66 :dic['k2']+=str(li) print(dic.items())

 還有使用sort()? 方法可以更加簡潔

li = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90] li.sort() #排序 z = li.index(66) l = len(li) dic = {"k1": li[z + 1:l], "k2": li[0:z]} print(dic)

4、輸出商品列表,用戶輸入序號,顯示用戶選中的商品商品?li = ["手機(jī)", "電腦", '鼠標(biāo)墊', '游艇']?

???????

????????a.?允許用戶添加商品?

????????b.?用戶輸入序號顯示內(nèi)容

li = ["手機(jī)", "電腦", '鼠標(biāo)墊', '游艇'] dic={} for i,v in enumerate(li,1):dic[i]=vwhile True:print(dic)xuanzeqi = input("添加商品請按+,精確顯示商品請按*,退出請按q")if xuanzeqi == "+":shangping=input("請?zhí)砑由唐访Q")i+=1dic[i]=shangpingelif xuanzeqi=="*":shangpinghaoma=int(input("請輸入你想要精確顯示的商品號碼"))print(dic[shangpinghaoma])elif xuanzeqi=="q":break

5、購物車
功能要求:
要求用戶輸入總資產(chǎn),例如:?2000
顯示商品列表,讓用戶根據(jù)序號選擇商品,加入購物車
購買,如果商品總額大于總資產(chǎn),提示賬戶余額不足,否則,購買成功。

goods = [ {"name": "電腦", "price": 1999}, {"name": "鼠標(biāo)", "price": 10}, {"name": "游艇", "price": 20}, {"name": "美女", "price": 998}, ] zongjiager=2000 while True:print(goods)goumaizongjia = 0shangping=input("請輸入你想購買的商品名稱,輸入q退出購物")for good in goods:if good["name"] == shangping :pannduanzhi = zongjiager - good["price"]if pannduanzhi < 0 :print("您的余額不足,購買不成功您剩余金額為"+str(zongjiager))else:goumaizongjia += good["price"]zongjiager-=goumaizongjiaprint("成功購買,您剩余金額為"+str(zongjiager))if shangping == "q":print("謝謝光臨")break

6、

用?Python?開發(fā)程序自動(dòng)計(jì)算方案:
公雞?5?文錢一只,母雞?3?文錢一只,小雞?3?只一文錢,用?100?文錢買?100?只雞,其中公雞,母雞,小雞都必須要有,問公雞,母
雞,小雞要買多少只剛好湊足?100?文錢

gongji_jiage=5 gongji_zuidashuliangs = range(1,21) muji_jiage = 3 muji_zuidashuliangs = range(1,34) xiaoji_jiage = 3 xiaoji_zhuidashuliangs = range(1,101) ls=[] for gongji_shuliang in gongji_zuidashuliangs:for muji_shuliang in muji_zuidashuliangs:for xiaoji_shuliang in xiaoji_zhuidashuliangs:if gongji_shuliang*gongji_jiage+muji_shuliang*muji_jiage+xiaoji_shuliang/xiaoji_jiage==100 and gongji_shuliang+ muji_shuliang+xiaoji_shuliang == 100:ls.append(("公雞",gongji_shuliang,"母雞",muji_shuliang,"小雞",xiaoji_shuliang)) print(len(ls)) print(ls)

   有一個(gè)大問題就是變量名稱以后不能設(shè)置太長,不然這讓既不方便閱讀代碼 也不方便 編寫代碼

?

7、用戶交互顯示? 三級列表制作

?a. 允許用戶增加內(nèi)容?

?b.?允許用戶選擇查看某一個(gè)級別內(nèi)容

dic = {

??? "植物":

??????? {"草本植物":

???????????? ["牽牛花", "瓜葉菊", "葫蘆", "翠菊", "冬小麥", "甜菜"],

???????? "木本植物":

???????????? ["喬木", "灌木", "半灌木", "如松", "杉", "樟"],

???????? "水生植物":

???????????? ["荷花", "千屈菜", "菖蒲", "黃菖蒲", "水蔥", "再力花", "梭魚草"]},

??? "動(dòng)物":

??????? {"兩棲動(dòng)物":

???????????? ["山龜", "山鱉", "石蛙", "娃娃魚", "蟾蜍", "龜", "鱷魚", "蜥蜴", "蛇"],

???????? "禽類":

???????????? ["雉雞", "原雞", "長鳴雞", "昌國雞", "斗雞", "長尾雞", "烏骨雞"],

???????? "哺乳類動(dòng)物":

???????????? ["虎", "狼", "鼠", "鹿", "貂", "猴", "貘", "樹懶", "斑馬", "狗"]}}

kongzhiqi = Truewhile kongzhiqi == True :print(dic.keys())#一級菜單欄panduan=input("請輸入你想要進(jìn)行的操作,\n1:精確查看列表內(nèi)容請輸入c,\n2:添加列表內(nèi)容請輸入b,\n3:推出模塊請輸入q")#二級菜單欄if panduan == "c":lb1=input("輸入你要查看的列表名")while kongzhiqi == True :print(dic[lb1].keys())panduan1 = input("請輸入你想要進(jìn)行的操作,\n1:精確查看列表內(nèi)容請輸入c,\n2:添加列表內(nèi)容請輸入b,\n3:推出模塊請輸入q\n4:輸入h返回上級菜單")#三級菜單if panduan1 == "c":lb2 = input("輸入你要查看的列表名")while kongzhiqi == True :print(dic[lb1][lb2])panduan2=input("請輸入你想要進(jìn)行的操作,\n1:添加列表內(nèi)容請輸入b,\n3:推出模塊請輸入q\n4:輸入h返回上級菜單")# 添加內(nèi)容if panduan2 == "b":txt = input("請輸入你要添加的名稱")dic[lb1][lb2].append(txt)# 返回上級列表elif panduan2 == "h":break# 退出模塊elif panduan2 == "q":kongzhiqi = Falseprint("成功退出")# 錯(cuò)誤指令else:print("請輸入正確的指令")#添加內(nèi)容elif panduan1 =="b":txt = input("請輸入你要添加的名稱")dic[lb1].setdefault(txt)#返回上級列表elif panduan1 == "h":break#退出模塊elif panduan1 == "q":kongzhiqi = Falseprint("成功退出")#錯(cuò)誤指令else:print("請輸入正確的指令")#添加內(nèi)容elif panduan == "b":txt= input("請輸入你要添加的名稱")dic.setdefault(txt)#退出模塊elif panduan == "q":kongzhiqi = Falseprint("成功退出")#輸入錯(cuò)誤else:print("請輸入正確的指令")

  上面這種三級列表的編輯方式知識(shí)單純使用 if語句 和 while循環(huán),但是代碼的數(shù)量很大 基本上在每一成績的列表下面都建立的對應(yīng)的功能判斷,這樣對于代碼的使用率太低。

  如何解決這個(gè)問題,首先就是考慮如何將三級列表的功能選項(xiàng) 集合到一起, 讓功能選擇在深入到各級列表中都能使用。

  這邊有如下方法,由于查詢的列表是一個(gè)字典,編輯查詢時(shí)使用的是key屬性,那么將key編成一個(gè)列表,并存儲(chǔ)到一個(gè)新建的字段當(dāng)中,并進(jìn)行不斷疊加,代碼如下:

kongzhiqi = Truekey_case =[]while kongzhiqi :#解決三層控制器想要在同一段代碼中實(shí)現(xiàn)而不沖突,最重要的就是 在不斷循環(huán)選擇過程中對文本字典當(dāng)中的 Key 的疊加。diejia = dicfor key in key_case:diejia = diejia[key]print("當(dāng)前所有子節(jié)點(diǎn):",list(diejia.keys()),"\n")choice = input("請輸入你想要進(jìn)行的操作,\n1:精確查看列表內(nèi)容請輸入c,\n2:添加列表內(nèi)容請輸入b,\n3:推出模塊請輸入q,\n4:返回上一級請輸入d")if choice.lower() == "c":chazhao = input("請輸入要查看的列表名稱")if chazhao in diejia:key_case.append(chazhao)else:print("該列表名不存在")elif choice.lower()== "b" :tianjia = input("請輸入你要在此列表中添加的內(nèi)容")if tianjia in diejia:print("該列表名已存在")else:diejia[tianjia] = {}elif choice.lower() == "d":if key_case :key_case.pop()else:print("已經(jīng)是最高級了")elif choice.lower() == "q":kongzhiqi = Falseprint("成功退出")else:print("請輸入正確的指令")

  經(jīng)過了這么多題目的嘗試過后,對于python編輯篇幅也越來越長, 在編輯過程中體驗(yàn)最深刻的就是python的一個(gè)代碼縮進(jìn)量的問題,python是靠縮進(jìn)量來判斷代碼的層級等等,一開始還不熟悉 在縮進(jìn)這個(gè)問題上耗費(fèi)了許多時(shí)間,

還有就是代碼注釋問題,一定要添加注釋,方便于自己檢查代碼和識(shí)別代碼, 還有就是變量的名稱問題,不太過于太長,這樣對于變量的查看不利。

posted on 2018-08-19 20:47 痘疤臉 閱讀(...) 評論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/chenansen/p/9501798.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的(三)PYTHON字典 元祖 列表尝试应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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