码迷,mamicode.com
首页 > 编程语言 > 详细

Python list(列表)实践

时间:2015-09-21 15:52:16      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:python list

列表常用操作:

1.先创建两个列表

>>> product = [‘iPhone‘,‘Xiaomi‘,‘Meizu‘] 

>>> prices = [‘5000‘,‘2000‘,‘1500‘]

2.打印列表

>>> product

[‘iPhone‘, ‘Xiaomi‘, ‘Meizu‘]

3.追加一个元素

>>> product.append(‘Samsung‘)

>>> product

[‘iPhone‘, ‘Xiaomi‘, ‘Meizu‘, ‘Samsung‘]

4.统计元素在列表中出现的次数

>>> product.count(‘Xiaomi‘)

1

5.查找元素索引位置

>>> product.index(‘Meizu‘) 

2

6.在执行位置插入元素

>>> product.insert(2,‘ZTE‘)

>>> product

[‘iPhone‘, ‘Xiaomi‘, ‘ZTE‘, ‘Meizu‘, ‘Samsung‘]

7.删除执行位置索引元素,不加索引,默认删除最后一个元素

>>> product.pop(2)

‘ZTE‘

>>> product

[‘iPhone‘, ‘Xiaomi‘, ‘Meizu‘, ‘Samsung‘]

8.删除列表中元素为三星的第一个元素

>>> product.remove(‘Samsung‘)

>>> product

[‘iPhone‘, ‘Xiaomi‘, ‘Meizu‘]

9.列表元素排序

>>> product.sort()    

>>> product

[‘Meizu‘, ‘Xiaomi‘, ‘iPhone‘]

>>> product.reverse()

>>> product

[‘iPhone‘, ‘Xiaomi‘, ‘Meizu‘]


通过以上两个列表,我们可以获取到商品的价格,因为他们索引位置是对应的。

例如:

>>> prices[product.index(‘iPhone‘)]

‘5000‘

由此可见,可以通过一个for循环,可以分别打印商品信息:

>>> for i in product:

...   print i,prices[product.index(i)]

... 

iPhone 5000

Xiaomi 2000

Meizu 1500

结合以上列表基本使用,写出下面这个实例:

  1. 用户输入工资金额,选择购买的商品(金额不够买的商品,做出提示)

  2. 购买后商品先加入购物车,最后输出都买了什么商品


创建个测试文本,也可以直接写到列表里面:

# cat shop.txt 

iPhone 5000

Xiaomi 2000

Meizu 1500

# vi shop_list.py

#!/usr/bin/env python
# coding:utf8
import sys
f = open(‘shop.txt‘)
product = []
prices = []
shop_list = []
flag = 0     #标记
flag2 = 0
for line in f.readlines():
    new_line = line.split()
    product.append(new_line[0])  #循环将第一个索引位置值追加列表product
    prices.append(int(new_line[1]))  #循环第二个索引位置值追加列表prices
#print product,‘\n‘,prices
while True:
    for pp in product:
        if flag2 != 1:print pp,‘\t‘,prices[product.index(pp)]   #判断下面flag2变量值,是否打印商品信息
    while True:
        try:
            if flag == 1:   #判断上次执行情况,如果已经执行,就不再提示输入工资
                break
            else:
                salary = int(raw_input(‘请输入您的工资: ‘))
                break
        except Exception:
            print "工资只能输入数字!"
    if salary < min(prices):   #内置函数min()判断列表中最小值
        print "对不起,您的工资买不起任何商品!"
        break
    choise_product = raw_input(‘请输入您要购买的商品名称: ‘).strip()  #strip()函数去空格
    if choise_product in product:
        product_prices = prices[product.index(choise_product)]   #通过输入的商品位置来找到商品价格
        if salary >= product_prices:
            print "您已成功购买%s,并加入购物车." %choise_product
            shop_list.append(choise_product)
            salary = salary - product_prices  #工资减去现在商品的价格
            if salary < min(prices):     #判断当前剩余工资是否小于最低价的商品
                print "对不起,剩余%d元,已买不起任何商品!" %salary
                print "购物车:%s" %shop_list
                sys.exit()
            else:
                print "您还剩余%d元,还可以购买以下商品: " %salary
                for product_prices in prices:
                    if  product_prices <= salary:  #打印剩余的钱数小于或等于列表的元素
                        print product[prices.index(product_prices)],‘\t‘,product_prices
                flag = 1    #用于判断是否执行上面命令,不再下次提示输入工资。以下flag都是如此
                flag2 = 1   #用于判断是否执行上面命令,如果执行,就不再打印商品信息
        else:
            print "您的工资买不起%s! 请重新选择商品:" %choise_product
            flag = 1
    else:
        print ‘\033[31;1m没有您要的商品! 请重新选择: \033[0m‘
        flag = 1
        flag2 = 2   #非1都可以。如果等于1,第二次输入购买的商品名称错误,将不打印商品信息,因为flag2变量已经在上面赋值了1

技术分享

本文出自 “李振良的技术博客” 博客,请务必保留此出处http://lizhenliang.blog.51cto.com/7876557/1696772

Python list(列表)实践

标签:python list

原文地址:http://lizhenliang.blog.51cto.com/7876557/1696772

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!