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

wKioL1X_sK6TokncAAQRNiCpqLU679.jpg



本文转自 李振良OK 51CTO博客,原文链接:http://blog.51cto.com/lizhenliang/1696772,如需转载请自行联系原作者

相关文章
|
8月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
1419 2
|
8月前
|
索引 Python
Python 列表切片赋值教程:掌握 “移花接木” 式列表修改技巧
本文通过生动的“嫁接”比喻,讲解Python列表切片赋值操作。切片可修改原列表内容,实现头部、尾部或中间元素替换,支持不等长赋值,灵活实现列表结构更新。
425 1
|
8月前
|
开发者 Python
Python列表推导式:优雅与效率的完美结合
Python列表推导式:优雅与效率的完美结合
553 116
|
8月前
|
大数据 开发者 Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
486 109
|
8月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
|
8月前
|
Python
Python列表推导式:简洁与高效的艺术
Python列表推导式:简洁与高效的艺术
573 119
|
8月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
484 2
|
8月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
360 4
|
8月前
|
索引 Python
098-python列表_切片_slice_开始_结束
本文介绍了Python中列表的切片(slice)操作,通过“前闭后开”原则截取列表片段,支持正负索引、省略端点等用法,并结合生活实例(如切面包、直播切片)帮助理解。切片不改变原列表,返回新列表。
441 4
|
8月前
|
Python
Python列表推导式:优雅与效率的艺术
Python列表推导式:优雅与效率的艺术
434 99

推荐镜像

更多