Python list(列表)实践 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

    列表常用操作:

    1.先创建个商品列表

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

    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 = ['5000','2000','1500']

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

Python list(列表)实践

    例如:

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

    '5000'

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

    >>> for i in product:

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

    ...

    iPhone 5000

    Xiaomi 2000

    Meizu 1500

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

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

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

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

    # 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     #标记flag2 = 0for line in f.readlines():    new_line = line.split()    product.append(new_line[0])  #循环将第一个索引位置值追加列表product    prices.append(int(new_line[1]))  #循环第二个索引位置值追加列表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:   #判断上次执行情况,如果已经执行,就不再提示输入工资                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    #用于判断是否执行上面命令,不再下次提示输入工资,

电脑资料

Python list(列表)实践》(http://meiwen.anslib.com)。以下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

最新文章