晓夏

YoungCheung

Zhang Sir's technical way

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')
0

2.增加

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


神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。