列表常用操作:
1.先創(chuàng)建個(gè)商品列表
>>> product = ['iPhone','Xiaomi','Meizu']
2.打印列表
>>> product
['iPhone', 'Xiaomi', 'Meizu']
3.追加一個(gè)元素
>>> product.append('Samsung')
>>> product
['iPhone', 'Xiaomi', 'Meizu', 'Samsung']
4.統(tǒng)計(jì)元素在列表中出現(xiàn)的次數(shù)
>>> product.count('Xiaomi')
1
5.查找元素索引位置
>>> product.index('Meizu')
2
6.在執(zhí)行位置插入元素
>>> product.insert(2,'ZTE')
>>> product
['iPhone', 'Xiaomi', 'ZTE', 'Meizu', 'Samsung']
7.刪除執(zhí)行位置索引元素,不加索引,默認(rèn)刪除最后一個(gè)元素
>>> product.pop(2)
'ZTE'
>>> product
['iPhone', 'Xiaomi', 'Meizu', 'Samsung']
8.刪除列表中元素為三星的第一個(gè)元素
>>> product.remove('Samsung')
>>> product
['iPhone', 'Xiaomi', 'Meizu']
9.列表元素排序
>>> product.sort()
>>> product
['Meizu', 'Xiaomi', 'iPhone']
>>> product.reverse()
>>> product
['iPhone', 'Xiaomi', 'Meizu']
再創(chuàng)建一個(gè)價(jià)格列表:
>>> prices = ['5000','2000','1500']
以上兩個(gè)列表,就可以通過(guò)商品名稱(chēng)獲取到價(jià)格,因?yàn)樗麄兯饕恢檬菍?duì)應(yīng)的,
Python list(列表)實(shí)踐
。例如:
>>> prices[product.index('iPhone')]
'5000'
由此可見(jiàn),可以通過(guò)一個(gè)for循環(huán),可以分別打印商品信息:
>>> for i in product:
... print i,prices[product.index(i)]
...
iPhone 5000
Xiaomi 2000
Meizu 1500
結(jié)合以上列表基本使用,寫(xiě)出下面這個(gè)實(shí)例:
用戶輸入工資金額,選擇購(gòu)買(mǎi)的商品(金額不夠買(mǎi)的商品,做出提示)
購(gòu)買(mǎi)后商品先加入購(gòu)物車(chē),最后輸出都買(mǎi)了什么商品
創(chuàng)建個(gè)測(cè)試文本,也可以直接寫(xiě)到列表里面:
# cat shop.txt
iPhone 5000
Xiaomi 2000
Meizu 1500
# vi shop_list.py#!/usr/bin/env python# coding:utf8import sysf = open('shop.txt')product = []prices = []shop_list = []flag = 0 #標(biāo)記flag2 = 0for line in f.readlines(): new_line = line.split() product.append(new_line[0]) #循環(huán)將第一個(gè)索引位置值追加列表product prices.append(int(new_line[1])) #循環(huán)第二個(gè)索引位置值追加列表prices#print product,'\n',priceswhile True: for pp in product: if flag2 != 1:print pp,'\t',prices[product.index(pp)] #判斷下面flag2變量值,是否打印商品信息 while True: try: if flag == 1: #判斷上次執(zhí)行情況,如果已經(jīng)執(zhí)行,就不再提示輸入工資 break else: salary = int(raw_input('請(qǐng)輸入您的工資: ')) break except Exception: print "工資只能輸入數(shù)字!" if salary < min(prices): #內(nèi)置函數(shù)min()判斷列表中最小值 print "對(duì)不起,您的工資買(mǎi)不起任何商品!" break choise_product = raw_input('請(qǐng)輸入您要購(gòu)買(mǎi)的商品名稱(chēng): ').strip() #strip()函數(shù)去空格 if choise_product in product: product_prices = prices[product.index(choise_product)] #通過(guò)輸入的商品位置來(lái)找到商品價(jià)格 if salary >= product_prices: print "您已成功購(gòu)買(mǎi)%s,并加入購(gòu)物車(chē)." %choise_product shop_list.append(choise_product) salary = salary - product_prices #工資減去現(xiàn)在商品的價(jià)格 if salary < min(prices): #判斷當(dāng)前剩余工資是否小于最低價(jià)的商品 print "對(duì)不起,剩余%d元,已買(mǎi)不起任何商品!" %salary print "購(gòu)物車(chē):%s" %shop_list sys.exit() else: print "您還剩余%d元,還可以購(gòu)買(mǎi)以下商品: " %salary for product_prices in prices: if product_prices <= salary: #打印剩余的錢(qián)數(shù)小于或等于列表的元素 print product[prices.index(product_prices)],'\t',product_prices flag = 1 #用于判斷是否執(zhí)行上面命令,不再下次提示輸入工資,電腦資料
《Python list(列表)實(shí)踐》(http://www.szmdbiao.com)。以下flag都是如此 flag2 = 1 #用于判斷是否執(zhí)行上面命令,如果執(zhí)行,就不再打印商品信息 else: print "您的工資買(mǎi)不起%s! 請(qǐng)重新選擇商品:" %choise_product flag = 1 else: print '\033[31;1m沒(méi)有您要的商品! 請(qǐng)重新選擇: \033[0m' flag = 1 flag2 = 2 #非1都可以。如果等于1,第二次輸入購(gòu)買(mǎi)的商品名稱(chēng)錯(cuò)誤,將不打印商品信息,因?yàn)閒lag2變量已經(jīng)在上面賦值了1