day15 python-03 列表,元组,字典
Python之路,Day3 = Python基础3
注:
extend: 拼接
enumerate:打印序号,返回两个值
模块的简单使用
sys模块
- #!/usr/bin/env python #这句话的含义是,在linux上,默认以python执行该文件
- # _*_ conding:utf-8 _*_ #这句的含义是,设置编码格式为utf_8
- import sys #导入模块,模块名为 “sys”
- print(sys.argv) #调用模块中的argv,这个是方法吗?怎么没有括号?
- #当使用命令行cmd运行这个文件的时候,可以在命令行加入参数,这样可以获取参数,例如输入: python test.py 参数1 参数2
- #得到的结果就是一个列表:['test.py', 'hello', 'word']
- #!/usr/bin/env python
- # _*_ coding:utf-8 _*_
- import sys
- print(sys.path) #打印出python自有的环境变量的位置
- #就是说,如果python需要import其它模块的时候,会从这里面搜索,如果没有,则提示找不到。通常自己在自定义模块的时候,可以把自己的模块放在这些路径下面,当然,也可以把自己写的模块的路劲添加进这个列表里面。
os模块
- #!/usr/bin/env python
- # _*_ coding:utf-8 _*_
- import os
- os.system("dir .")
- #调用系统命令“dir .”,这里的 “.”是当前目录的意思。整个命令就是,调用系统cmd命令中的显示当前文件夹下的所有文件。
list相关应用
- #列表的创建
- #方法一
- test_list = ["zhang", 1, "String"]
- #方法二
- test_list = list(["zhang", 1, "String"])
- #注:列表中可以嵌套列表
- #如:test_list = ["zhang", 1, "String", ["zhang", 1, "String"]]
基本操作
- test_list = ["zhang", 1, "String", "admin", "username", "password"]
- 索引--> test_list.index("zhang") #返回结果为 0
- 从左往右找到括号中的元素第一次出现位置的下标,如果不存在,则返回错误。有多个时候,只返回第一个。
- 切片--> test_list[1:5] #结果为 [1, "String", "admin", "username"]
- 将下标为 >=1 且 <5 的所有元素取出来作为新的列表,如果,左右数字不写,则默认为从头开始,到末尾结束。此方法可以跳着切片 test_index[1:5:2] 意思为,距离为2.
- 追加--> test_list.append("people") #将字符串"people"添加到test_list最后面
- test_list.insert(1,"d") #将字符串"d",添加到下标为 1 的位置,其他内容顺序后移。
- test_list.extend(test_list) #将列表 test_list 本身添加到自己后面,这个方法通常用来将两个列表合并,括号中的列表,将会按顺序添加到前面列表的后面。
- 删除--> del test_list[0] #删除下标为0的元素
- test_list.pop() #删除最后一个元素,若果括号中加入下标,则删除,该下标位置
- test_list.remove("admin") #从左往右,删除第一个遇到的该元素
- test_list.clear() #清空 test_list。
- 长度--> len(test_list) #返回列表 test_list 的长度
- 循环-->
- test_list = ["zhang", 1, "String", "admin", "username", "password"]
- for i in test_list:
- print(i)
- #循环打印 test_list 中的所有元素
- 包含-->
- "zhang" in test_list #判断字符串 "zhang" 在 test_list 列表中,存在 True, 不存在 False
- "zhang" not in test_list #判断字符串 "zhang" 不在 test_list 列表中,不存在 True, 存在 False
- 计数--> test_list.count("user") #查看 test_list 列表中包含几个 "user" 字符串
元组(不可变的列表)
- test_tuple = ("a", "b", "c", "d") #赋值方法1
- test_tuple = tuple(("a", "b", "c", "d")) #赋值方法2
字典(无序)
- test_dict = {"name": "zhang", "gender": "male", "age": 23}
- test_dict = dict({"name": "zhang", "gender": "male", "age": 23})
- 索引
- #!/usr/bin/env python
- # _*_ coding:utf-8 _*_
- test_dict = {"name": "zhang", "gender": "male", "age": 23}
- print(test_dict["name"])
- ==> zhang
- #打印出 "name"对应的 值
- #!/usr/bin/env python
索引用test_dict["name"]的时候,如果不存在,则会出错,所有一个更好的选择:
test_dict.get("name") 这样的话如果没有,则返回None,有的话返回值
- 新增
- #!/usr/bin/env python
- # _*_ coding:utf-8 _*_
- test_dict = {"name": "zhang", "gender": "male", "age": 23}
- test_dict["salary"] = 3000
- #添加新内容 "salary":3000, 如果 "salary" 已经存在,那么将修改它的值
- print(test_dict)
dict1.update(dict2) 将dict2中不重复的元素添加到dict1中,如果存在,则将dict1中数值跟新进去
- #!/usr/bin/env python
- 删除
- test_dict = {"name": "zhang", "gender": "male", "age": 23}
- test_dict.clear() #清空 test_claer
- test_dict.pop("name") #删除 "name" 这一组数据;
- test_dict.popitem() #随机删除一组数据。
- 键、值、键值对
- 循环
- test_dict = {"name": "zhang", "gender": "male", "age": 23}
- for k, v in test_dict.items():
- print(k,v)
- """输出结果为
- name zhang
- gender male
- age 23
- """
- 长度
- test_dict = {"name": "zhang", "gender": "male", "age": 23}
- print(len(test_dict))
- ==> 3
字符串简单应用
- test_String = " my name is bubblejia\n"
- print(test_String) #正常打印字符串,包括前面的空格和后面的换行
- ==> my name is bubblejia
- ==>
- print(test_String.strip()) #去掉开头和结尾的空格及换行
- ==>my name is bubblejia
- print(test_String.split()) #以空格(默认的)为分界,将字符串转为列表
- ==>['my', 'name', 'is', 'bubblejia']
- print(len(test_String)) #查看test_String长度
- ==>22
- print(test_String[:5]) #取test_String下标5之前的所有元素(不包含5)
- ==> my n
- print(test_String[5:]) #取test_String下标5之后的所有元素(包含5)
- ==>ame is bubblejia
- ==>
- print(test_String.index("n")) #从左往右,找到第一个 "n" 所在位置的下标
- ==>4
copy简单应用
- import copy
- a = [1, 2, 3, 4, ['a', 'b']] #原始对象
- b = a #赋值,传对象的引用
- c = copy.copy(a) #对象拷贝,浅拷贝,只拷贝第一层。
- d = copy.deepcopy(a) #对象拷贝,深拷贝,拷贝所有层。
====================homework=====================
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- # __author__ = "Always"
- # Date: 2017/6/8
- """
- 一、元素分类
- 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
- 即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}
- """
- li = [11,22,33,44,55,66,77,88,99,90]
- # print(li)
- d = {'k1':[], 'k2':[]}
- for i in li:
- if type(i) is int:
- if i > 66:
- d['k1'].append(i)
- else:
- d['k2'].append(i)
- print('k1:%s\nk2:%s'%(d['k1'], d['k2']))
homework-01
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- # __author__ = "Always"
- # Date: 2017/6/8
- """
- 二、查找
- 查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
- li = ["alec", " aric", "Alex", "Tony", "rain"]
- tu = ("alec", " aric", "Alex", "Tony", "rain")
- dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
- """
- li = ["alec", " aric", "Alex", "Tony", "rain"]
- tu = ("alec", " aric", "Alex", "Tony", "rain")
- dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
- new_d = {'li':li, 'tu':tu, 'dic':dic}
- for k in new_d:
- print('%s中,以 a或A开头 并且以 c 结尾的所有元素有:'%k, end='')
- if type(new_d[k]) is list or type(new_d[k]) is tuple:
- for v in new_d[k]:
- new_v = v.strip()
- s, *_, e = new_v
- if e == 'c' and (s == 'a' or s == 'A'):
- print(new_v, end=' ')
- elif type(new_d[k]) is dict:
- v2 = new_d[k]
- for k2 in v2:
- new_v = v2[k2].strip()
- s, *_, e = new_v
- if e == 'c' and (s == 'a' or s == 'A'):
- print(k2+':'+new_v, end=' ')
- print()
homework-02
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- # __author__ = "Always"
- # Date: 2017/6/8
- """
- 三、输出商品列表,用户输入序号,显示用户选中的商品
- 商品 li = ["手机", "电脑", '鼠标垫', '游艇']
- """
- import time
- li = ["手机", "电脑", '鼠标垫', '游艇']
- while True:
- print("商品列表".center(15,'='))
- for i in range(len(li)):
- print("%s %s"%(i+1, li[i]))
- choose = input(">>>")
- if choose.isdigit() and 0 < int(choose) <= len(li):
- print('你选择的是: %s %s'%(choose, li[int(choose)-1]))
- else:
- print('没有这个选项。。。')
- time.sleep(2)
homework-03
- #! /usr/bin/env python
- # -*- coding: utf-8 -*-
- # __author__ = "Always"
- # Date: 2017/6/8
- """
- 四、购物车
- 功能要求:
- 要求用户输入总资产,例如:2000
- 显示商品列表,让用户根据序号选择商品,加入购物车
- 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
- 附加:可充值、某商品移除购物车
- goods = [
- {"name": "电脑", "price": 1999},
- {"name": "鼠标", "price": 10},
- {"name": "游艇", "price": 20},
- {"name": "美女", "price": 998},
- ]
- """
- # =========
- import time
- goods = [
- {"name": "电脑", "price": 1999},
- {"name": "鼠标", "price": 10},
- {"name": "游艇", "price": 20},
- {"name": "美女", "price": 998},
- ]
- shopping_list = []
- # shopping_list = [
- # {'name':'电脑', 'price':1999, 'count':4}
- # ]
- """
- 打印购物清单
- print(' M E N U\n序号 名称 \t 价格')
- for i, info in enumerate(goods, 1):
- print(" %s %s \t¥%s"%(i, info['name'], info['price']))
- buy_number = input("请输入需要购买的商品序号:")
- """
- while True:
- salary = input("请输如你的工资:")
- if salary.isdigit():
- salary = int(salary)
- break
- while True:
- print(' M E N U\n序号 名称 \t 价格')
- for i, info in enumerate(goods, 1):
- print(" %s %s \t¥%s" % (i, info['name'], info['price']))
- buy_number = input("请输入需要购买的商品序号:")
- if buy_number.isdigit() and int(buy_number) <= len(goods):
- # 如果输入的序号信息没有问题,那么就加入购物车
- append_flag = False
- buy_number = int(buy_number)
- goods_name = goods[buy_number - 1]['name']
- goods_price = goods[buy_number - 1]['price']
- for i_list, info_list in enumerate(shopping_list):
- if goods_name in info_list['name']:
- shopping_list[i_list]['count'] += 1
- append_flag = True
- break
- if not append_flag:
- shopping_list.append({'name':goods_name, 'price':goods_price, 'count':1})
- print("%s已经加入了你的购物车。。"%goods_name)
- time.sleep(1)
- else:
- print('那啥,东西不存在。。。')
- time.sleep(1)
- # print(shopping_list)
- # 这个地方就用来打印是否继续购买,以及结算什么的
- goahead_shopping = input("是否继续购买y/n:")
- if goahead_shopping == 'y':
- continue
- else:
- take_the_bill = input("是否结账y/n:")
- if take_the_bill == 'y':
- print('我要开始结账了')
- # shopping_list = [
- # {'name': '电脑', 'price': 1999, 'count': 10}
- # ]
- while True:
- all_cost = 0
- print(" 购物车列表\n 序号 名称\t 价格 \t 数量")
- for i, info_list in enumerate(shopping_list, 1):
- print(" %s %s \t ¥%s \t %s" % (i, info_list['name'], info_list['price'], info_list['count']))
- all_cost += info_list['price'] * info_list['count']
- print("合计:%s\n" % all_cost)
- input("回车键确定结账。。。")
- if salary >= all_cost:
- salary -= all_cost
- print("结算成功,共消费%s元,还剩余%s元。。。" % (all_cost, salary))
- exit()
- else:
- deposit = input("钱不够,是否充值y/n:") # deposit 存款
- if deposit == "y":
- print('我要开始存钱了。。。')
- deposit_number = input('你要存多少钱呢:')
- if deposit_number.isdigit():
- salary += int(deposit_number)
- print('OK了,你现在一共有%s元。。。' % salary)
- time.sleep(1.2)
- elif deposit == 'q':
- break
- else:
- del_shopping_list = input('是否删除购物车的物品y/n:')
- if del_shopping_list == 'y':
- del_flag = True
- while del_flag:
- print('我要开始删除购物车的内容了。。。。')
- all_cost = 0
- for i, info_list in enumerate(shopping_list, 1):
- print(" %s %s \t ¥%s \t %s" % (
- i, info_list['name'], info_list['price'], info_list['count']))
- all_cost += info_list['price'] * info_list['count']
- print("合计:%s\n" % all_cost)
- del_choose = input('删除啥勒:')
- if del_choose.isdigit() and int(del_choose) <= len(shopping_list):
- del_choose = int(del_choose)
- if shopping_list[del_choose - 1]['count'] == 1:
- del_index = del_choose - 1
- shopping_list.pop(del_index)
- else:
- shopping_list[del_choose - 1]['count'] -= 1
- gohead_del = input('是否继续删除y/n:')
- if gohead_del != 'y':
- del_flag = False
- break
- elif del_shopping_list == 'q':
- exit('谢谢使用。。。')
- exit('谢谢使用。。。。')
- else:
- continue
homework-04
day15 python-03 列表,元组,字典的更多相关文章
- python中列表 元组 字典 集合的区别
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...
- **python中列表 元组 字典 集合
列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...
- Python之列表&元组&字典
今天学习了Python的基本数据类型,做以下笔记,以备查用. 一.列表 列表的常用方法: 1.append()方法 def append(self, p_object): # real signatu ...
- Python学习-列表元组字典操作
一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...
- python字符串/列表/元组/字典之间的相互转换(5)
一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...
- python 中列表 元组 字典 集合的区别
先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...
- python字符串 列表 元组 字典相关操作函数总结
1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...
- python基础-列表元组字典
1.列表和元组 列表可以对数据实现最方便的存储.修改等操作 names=["Alex","tenglan","Eric","Rai ...
- 【python】列表&&元组&&字典
列表:用“[]”包裹,可对值增删改. 列表遍历: 方法一: alist=["a","b","c","d","e ...
- python的列表 元组 字典
列表和元组都是序列,是数据元素的集合,数据元素可以是数值.字符串,布尔值.对象等. 一.列表:用方括号定义[] 空列表 names = [] 带值的列表 names = ["bill&quo ...
随机推荐
- 【HDOJ】P5056 Boring count
题目意思是给你一个字符串和K,让你求其中有多少个字串中每个字母的出现次数不超过K次,可以等于 题目意思是很简单的,写起来也很简单,不过就是注意最后要是long long要不WA了,555~ #incl ...
- html-基础知识二
form 功能:向服务器传输数据,实现用户和web 服务器的交互 一.表单属性 accept-charset: 规定在提交表单中使用的字符集 action:规定向何处提交表单地址(url) autoc ...
- CentOS7.6编译安装Python-3.7.4
安装步骤 1. 下载安装包.wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz<说明>如果报SSL/TSL错误,则加 ...
- C# Func和匿名方法 简单使用
今天敲代码遇见一个问题,解决中用到了C#的Func和匿名方法,发现挺好用的 定义一个这样的方法可以避免重复写try catch 这里用到了Func<int,string> ,它其实就是一个 ...
- vue项目 (1) vue结合mini-ui 的使用
1.安装 npm install mini-ui -S 2. 使用 import Vue from 'vue' import App from './App' import router from ' ...
- mysql和postgresql查询数据库中哪些表包含某个字段
想知道数据库中哪表含有edu_status字段 mysql> select table_name,column_name from information_schema.columns wh ...
- 单向连通图 Going from u to v or from v to u? poj2762
http://poj.org/problem?id=2762 强连通求子图和子图关系 + 子图关系是链式结构 #include <cstdio> #include <cstdlib& ...
- EF批量添加数据之修改SQL Server执行上限
asp.net core 项目 打开Startup.cs services.AddDbContext<MyContext>( options => { options.UseSqlS ...
- IIS查找报错信息
1.打开IIS,选择日志 2.选择 日志文件和ETW事件 ---->应用 3.在发布网站的根目录下找一个logs文件(如果没有则创建) 4.浏览网站,如果报错,logs文件夹下面就会生成一个 ...
- EF批量添加
1.首先,打开工具——NuGet包管理器——管理解决方案的NoGet程序包——搜索Z.EntityFramework.Extensions 点击安装!!! codefirst定义一个实体,用EF的方法 ...