列表-元组-字典-集合181022

一、列表

# Author:Li Dongfei
names = ["zhangsan","lisi","wangwu","jack"]
print(names)
print(names[0],names[2])
print(names[1:3])  #切片
print(names[-1])  #取最后一个值
print(names[-2:])  #取最后俩个值
print(names[0:-1:2])
print(names[::2])
names.append("maria")  #追加值
print(names)
names.insert(1,"Tony")  #插入lisi的前边
print(names)
names[2] = "xiaoming"  #将第三个位置的值改为"xiaoming"
#names.remove("lisi")  #删除
del names[2]  #删除第三个值
names.pop()  #删除,默认删除最后一个值
#names.clear()  #清空列表
names.reverse()  #翻转列表
names.sort()  #排序
names2 = [1,2,3,4]
names.extend(names2)  #扩展
print(names)
print(names2)
names3 = names2.copy()  #浅copy,只复制第一层列表,子列表不会copy
name4 = copy.copy(names2)
name5 = copy.deepcopy(names2)  #深copy,完全克隆
  • 列表循环
# Author:Li Dongfei
names = ["zhangsan","lisi","wangwu","jack"]
for i in names:
    print(i)
  • 列表切片
# Author:Li Dongfei
names = ["zhangsan","lisi","wangwu","jack"]
print(names)
print(names[0],names[2])
print(names[1:3])  #切片
print(names[-1])  #取最后一个值
print(names[-2:])  #取最后俩个值
print(names[0:-1:2])
print(names[::2])
  • 浅copy
# Author:Li Dongfei
import copy
person = ['dongfei',['saving',100]]
p1 = copy.copy(person)
p2 = person[:]
p3 = list(person)

二、元组

可以理解为只读列表

# Author:Li Dongfei
names = ('dongfei','dongfei2')

三、字典

  • 字典是无序的
  • 字典可以层层嵌套

  • 增删查改

# Author:Li Dongfei
info = {
    'stu01': "linghuchong",
    'stu02': "yangguo",
    'stu03': "xiaofeng"
}
print(info)  #字典是无序的,通过key来查找
print(info["stu01"])  #取指定key的val
print(info.get("stu05"))  #安全的查,如果没有返回none
print("stu04" in info)  #判断key是否在字典中存在
info["stu01"] = "令狐冲"  #改
info["stu04"] = "ouyangfeng"  #增
del info["stu02"]  #删
info.pop("stu03")  #删
info.popitem()  #随机删
print(info)
  • 嵌套
info2 = {
    "stu01": {
        "name": "xiaolongnv",
        "age": 18
    },
    "stu02": {
        "name": "yangguo",
        "age": 12
    }
}
info2["stu02"]["age"] = 13
print(info2)
  • 常用方法
info.setdefault()  #如果key有值则使用,没有值附一个默认的值
info.update()  #俩个列表合并
info.items()  #将字典转换为列表和元组
info.fromkeys()  #初始化一个新的字典,笛卡尔乘积
  • 字典的循环
# Author:Li Dongfei
info = {
    'stu01': "linghuchong",
    'stu02': "yangguo",
    'stu03': "xiaofeng"
}
for i in info:  #建议用此方法,高效
    print(i,info[i])
for k,v in info.items():  #第二种方法
    print(k,v)

四、集合

五、练习

  • 购物车
# Author:Li Dongfei
product_list = [
    ('iphone',5800),
    ('mac pro',9800),
    ('bike',800),
    ('watch',10600),
    ('coffee',31),
    ('python book',120)
]
shopping_list = []
salary = input("请输入您的预算>>> ")
if salary.isdigit():
    salary = int(salary)
    while True:
        for index,item in enumerate(product_list):
            print(index,item)
        user_choice = input("请输入要购买的商品编号>>> ")
        if user_choice.isdigit():
            user_choice = int(user_choice)
            if user_choice < len(product_list) and user_choice >= 0:
                p_item = product_list[user_choice]
                if p_item[1] < salary:
                    salary -= p_item[1]
                    shopping_list.append(p_item)
                    print("您加入了%s商品,预算还剩%s" %(p_item,salary))
                else:
                    print("您的预算不足,还剩%s" %salary)
            else:
                print("商品不存在!")
        elif user_choice == 'q':
            print("————已购买的商品————")
            for p in shopping_list:
                print(p)
            exit("找零%s" %salary)
        else:
            print("invalid option!")
  • 三级菜单
# Author:Li Dongfei
data = {
    'beijing': {
        "dongchen": ["dongdan","beijingzhan"],
        "xicheng": ["xidan","beijingxizhan"]
    },
    'hebei': {
        "shijiazhang": ["qiaodong","qiaoxi"],
        "zhangjiakou": []
    }
}
while True:
    for i in data:
        print(i)
    choice = input(">>>")
    if choice == 'b':
        exit("done")
    if choice in data:
        while True:
            for j in data[choice]:
                print("\t",j)
            choice2 = input(">>>")
            if choice2 == 'b':
                break
            if choice2 in data[choice]:
                while True:
                    for k in data[choice][choice2]:
                        print("\t\t",k)
                    choice3 = input(">>>")
                    if choice3 == 'b':
                        break

猜你喜欢

转载自www.cnblogs.com/L-dongf/p/9840535.html