博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python list(列表)实践
阅读量:6292 次
发布时间:2019-06-22

本文共 2933 字,大约阅读时间需要 9 分钟。

列表常用操作:

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

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

你可能感兴趣的文章
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>