Python list(列表)实践

列表常用操作:

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']

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

例如:

>>> 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


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

# 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

时间: 2024-11-01 06:24:24

Python list(列表)实践的相关文章

Python应用与实践

Python应用与实践 目录 1.      Python是什么? 1.1.      Python语言 1.2.      Python哲学 2.      Python在工作中的应用 2.1.      实例1:文件批量处理 2.2.      实例2:xml与excel互转 2.3.      总结 3.      为什么选择Python? 3.1.      前途!钱途! 3.2.      开发效率极高 3.3.      总而言之 4.      还有谁在用Python? 4.1. 

Python统计列表中的重复项出现的次数的方法_python

本文实例展示了Python统计列表中的重复项出现的次数的方法,是一个很实用的功能,适合Python初学者学习借鉴.具体方法如下: 对一个列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],现在我们需要统计这个列表里的重复项,并且重复了几次也要统计出来. 方法1: mylist = [1,2,2,2,2,3,3,3,4,4,4,4] myset = set(mylist) #myset是另外一个列表,里面的内容是mylist里面的无重复 项 for item in myset: prin

Python之NumPy实践之数组和矢量计算

Python之NumPy实践之数组和矢量计算 1. NumPy(Numerical Python)是高性能科学技术和数据分析的基础包. 2. NumPy的ndarray:一种对位数组对象.NumPy最重要的一个特点是其N维数组对象(即ndarray),该对象是是一个快速而灵活的大数据集容器. 3. 创建ndarray data1 = [1,2.4,4,3,0] arr1 = np.array(data1) 除np.array可以创建新数组之外,zeros和ones分别可以创建指定长度或形状的全0

Python中列表的一些基本操作知识汇总

  这篇文章主要介绍了Python中列表的一些基本操作知识汇总,皆属于Python的基本功,需要的朋友可以参考下 Python最基本的数据结构是序列(列表/元组).一个序列中的每个元素都分配有一个数字- 它的位置或索引.第一个索引是0,第二个索引是1,依此类推. Python有6内置类型的序列,但最常见的是列表和元组,我们将在本教程中看到. 有一些东西可以使用所有序列类型来做.这些操作包括索引,切片,加,乘,并检查成员.此外,Python已经内置函数查找序列的长度和搜索它的最大和最小的元素. P

Python操作列表之List.insert()方法的使用

  这篇文章主要介绍了Python操作列表之List.insert()方法的使用,是Python入门中的基础知识,需要的朋友可以参考下 insert()方法插入对象obj到列表的偏移量索引. 语法 以下是insert()方法的语法: ? 1 list.insert(index, obj) 参数 index -- 这是要插入对象obj必要的索引 obj -- 这是将被插入到给定的列表中的对象 返回值 此方法不返回任何值,但它插入指定的索引处的指定元素 例子 下面的例子显示了insert()方法的使

在Python的列表中利用remove()方法删除元素的教程

  这篇文章主要介绍了在Python的列表中利用remove()方法删除元素的教程,是Python入门中的基础知识,注意其和pop()方法的区别,需要的朋友可以参考下 remove()方法从列表中删除第一个obj. 语法 以下是remove()方法的语法: ? 1 list.remove(obj) 参数 obj -- 这是可以从列表中移除该对象 返回值 此方法不返回任何值,但从列表中删除给定的对象 例子 下面的例子显示了remove()方法的使用 ? 1 2 3 4 5 6 7 8 #!/usr

Python对列表排序的方法实例分析

  本文实例讲述了Python对列表排序的方法.分享给大家供大家参考.具体分析如下: 1.sort()函数 sort()函数使用固定的排序算法对列表排序.sort()函数对列表排序时改变了原来的列表,从而让其中的元素能按一定的顺序排列,而不是简单的返回一个已排序的列表副本. 注意sort()函数改变原来的列表,函数返回值是空值即None.因此,如果需要一个已排好序的列表副本,同时又要保留原有列表不变的时候,就不能直接简单的使用sort()函数.为了实现上述功能使用sort()的方法是:先获取列表

python删除列表中重复记录的方法

  这篇文章主要介绍了python删除列表中重复记录的方法,涉及Python操作列表的相关技巧,需要的朋友可以参考下 ? 1 2 3 4 def removeListDuplicates(seq): seen = set() seen_add = seen.add return [ x for x in seq if x not in seen and not seen_add(x) ] 希望本文所述对大家的Python程序设计有所帮助.

python 合并列表

Python 合并列表 方式一:使用extend Python代码   >>> a=[1,2,3]   >>> b=['a','b','c']   >>> a.extend(b)   >>> a   [1, 2, 3, 'a', 'b', 'c']   >>> b   ['a', 'b', 'c']       方式二:使用分片赋值 Python代码   >>> a=[1,2,3]   >&g

python中列表字符串的操作

问题描述 python中列表字符串的操作 li是一个大列表li=[['2324667 7326496n'] [] ...........]共100个小列表构成,如果想把每个小列表中的n去掉,该怎么写? 解决方案 #!/bin/python3li = [['1234565464n']['3125345n']['789132n']['789231ssdn']] for i in li: for j in i: print(j.strip()end="""") 解决方案二