python(2)之列表

列表的使用

names=["zhangyang","liming",["sese","popo"],"xiaohai"]

(1)插入元素:insert,append(追加),使用方式如下:

names.insert(2,"xiaohong")#插入

names.append("wuli")#追加元素到names里面

(2)修改元素
names[1]="heian" #改

(3)删除元素

names.remove("zhangyang")#1.删除元素
del names[0] #2.删除元素

names.pop()#3.删除元素,默认删除最后一个元素

(4)查找元素
print(names[0:2])#切片查询,顾头不顾尾
print(names[-1])#查询最后一个元素
print(names[:1])#只有0和-1可以省略
print(names[-2:-1])#结果顾头不顾尾

(5)按索引查找元素
name[names.index("xiaohong")]
(6)计算相同元素的个数
names.count("xiaohong")

(7)元素反转
names.reverse()
(8)元素排序
names.sort()#排序

(9)元素复制(浅复制)
1.name2=names.copy()
  修改names列表:
  names[3][0]="my god" #因为前面插入了一个元素,所以此处为3
  打印name2和names列表,结果如下,发现两个列表都更改了:
python(2)之列表 
2.引入copy模块
import copy

name2=copy.copy(names)
 
列表的应用:购物车程序。
需求:1.启动程序后,让用户输入工资,然后打印商品列表
   2.允许用户根据商品编码选择商品
   3.用户选择商品后,检查用户余额是否足够,足够就扣款,不足就提醒
   4.可随时退出,退出时打印已购商品列表和余额
代码:
product_list=[
("iphone",6999),
("mac pro",12000),
("starbuff",31),
("bike",800)]
shopping_list=[]
salary=input("请输入您的工资:")
if salary.isdigit():
salary=int(salary)
else:
salary=input("请重新输入正确的金额:")

for index,item in enumerate(product_list):#给商品添加序号并打印输出,index为序号,item为元组数据内容
print(index,item)

while True:
choice_list=input("请输入您选择的商品序号:")
if choice_list.isdigit():#如果输入的是数字形式的字符串
choice_list=int(choice_list)#将字符串转换为整形
if choice_list<len(product_list) and choice_list>-1:#判断输入的商品序号是否存在
p_item=product_list[choice_list]#通过下标取出商品
if salary>=p_item[1]:#比较工资和实际商品的价格,买得起
shopping_list.append(p_item)#添加到购买商品列表中
salary-=p_item[1]
# print(shopping_list)
print("添加了商品[%s]到你的购物车,您的余额现在还有 33[31;1m[%s] 33[0m"%(p_item[0],salary))
else:
print(" 33[41;1m您的余额不足! 33[0m")
else:#输入商品序号超出了商品序号范围
print("您输入的商品序号[%s]不存在!"%(choice_list))
elif choice_list=="q":
print("---购物清单----")
for p in shopping_list:
print(p)
print("您的余额还有: 33[31;1m[%s] 33[0m"%salary)
exit()
else:
print("invalid input")