Python数据类型之列表操作
浏览量:723
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型,但最常见的是列表和元组。
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型。创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = ['physics', 'chemistry', 1997, 2000]; list2 = [1, 2, 3, 4, 5 ]; list3 = ["a", "b", "c", "d"];
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
1、查询列表里的值
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"] >>> names[0] 'ZhangYang' >>> names[2] 'XiangPeng'
a.顾头不顾尾
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"] >>> names[1:3] ['GuYun', 'XiangPeng']
b.切片取最后一位
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"] >>> names[-1] 'XuBuSi' >>> names[3] 'XuBuSi' >>> names[-1:] ['XuBuSi']
c.取前几[:x]
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"] >>> names[:2] ['ZhangYang', 'GuYun']
d查找索引.index()
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"]
>>> names.index('ZhangYang')
02.增加
a.增加在后面
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"]
>>> names.append("leihaidong")
>>> names
['ZhangYang', 'GuYun', 'XiangPeng', 'XuBuSi', 'leihaidong']b.指定位置插入
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"]
>>> names.append("LeiHaDong")
>>> names.insert(1,"jerry")
>>> names
['ZhangYang', 'jerry', 'GuYun', 'XiangPeng', 'XuBuSi', 'LeiHaDong']3.修改
指定位置修改
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"] >>> names ['ZhangYang', 'GuYun', 'XiangPeng', 'XuBuSi'] >>> names[1]="XieDi" >>> names ['ZhangYang', 'XieDi', 'XiangPeng', 'XuBuSi']
4删除
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi"]
>>> names
['ZhangYang', 'GuYun', 'XiangPeng', 'XuBuSi']
>>> del names[1] #指定位置删除
>>> names
['ZhangYang', 'XiangPeng', 'XuBuSi']
>>> names.remove("XuBuSi") #指定元素删除
>>> names
['ZhangYang', 'XiangPeng']
>>> names.pop() #随机元素最后一个值
'XiangPeng'补充:清空.clear()相当于del list[:]
#!/usr/bin/python3
list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list1.clear()
print ("列表清空后 : ", list1)5. 反转reverse()
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi","jerry"] >>> names ['ZhangYang', 'GuYun', 'XiangPeng', 'XuBuSi', 'jerry'] >>> names.reverse() >>> names ['jerry', 'XuBuSi', 'XiangPeng', 'GuYun', 'ZhangYang']
6.排序.sort()
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi","Jerry"] >>> names.sort() >>> names ['GuYun', 'Jerry', 'XiangPeng', 'XuBuSi', 'ZhangYang'] print(names) #排序规则:特殊字符 数字 大写 小写
6.合并 extend()
>>> names = ["ZhangYang","GuYun","XiangPeng","XuBuSi","Jerry"] >>> print(names) ['ZhangYang', 'GuYun', 'XiangPeng', 'XuBuSi', 'Jerry'] >>> names2 =[1,2,3,4] >>> names.extend(names2) >>> names ['ZhangYang', 'GuYun', 'XiangPeng', 'XuBuSi', 'Jerry', 1, 2, 3, 4]
7.copy
#!/usr/bin/python3
list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list2 = list1.copy()
print ("list2 列表: ", list2)输出结果:
list2 列表: ['Google', 'Runoob', 'Taobao', 'Baidu']
浅copy
names = ["ZhangYang","GuYun","XiangPeng",["alex","jack"],"XuBuSi","Jerry"] names2=names.copy() print(names) print(names2) names[2] = "向鹏" names[3] [0]="ALEXANDER" print(names) print(names2)
深copy
import copy names = ["ZhangYang","GuYun","XiangPeng",["alex","jack"],"XuBuSi","Jerry"] names2=copy.deepcopy(names) print(names) print(names2) names[2] = "向鹏" names[3] [0]="ALEXANDER" print(names) print(names2)
8.列表循环
>>> names = ["ZhangYang","GuYun","XiangPeng",["alex","jack"],"XuBuSi","Jerry"] >>> for i in names: ... print(i) ... ZhangYang GuYun XiangPeng ['alex', 'jack'] XuBuSi Jerry
购物车程序
需求:
1.启动程序后,让用户输入工资,然后打印商品列表
2.允许用户根据商品编号购买商品
3.用户选择商品后,检测余额是否够,够就直接扣款,不够就提醒
4.可随时退出,退出时,打印已购买商品和余额
代码:
shopping.py
# -*- conding:utf-8 -*-
#Author:YoungCheung
product_list=[
('Iphone',6800),
('Mac pro',21000),
('Bike',2000),
('Watch',3200),
('cofee',31),
]
shoping_list=[]
salary=input("please input your salary:")
if salary.isdigit():
salary=int(salary)
while True:
# for item inproduct_list:
for index,item in enumerate(product_list):
print(index,item)
# print(product_list.index(item),item)
user_choice=input("选择您想买商品>>>:")
if user_choice.isdigit():
user_choice=int(user_choice)
if user_choice<len(product_list) and user_choice>=0:
product_item = product_list[user_choice]
if product_item [1] <= salary: #买得起
shoping_list.append( product_item )
salary -= product_item [1]
print("added %s into shoping cart,your current balance is \033[31;1m%s\033[0m" %( product_item ,salary))
else:
print("\033[41;1m你的余额只剩下[%s]啦,买不了啦\033[0m")
else:
print("product code [%s] is not exist!" % user_choice)
elif user_choice =='quit':
print('------shoping list----------------')
for p in shoping_list:
print(p)
print("your current balance:",salary)
exit()
else:
print("invalid option")
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。