# _*_ coding: utf-8 _*_
#zip()组合多个元组
name=("张三","李四","王五")
age=(18,20,22)
sex=("男","女","女")
zip(name,age,sex)
list(zip(name,age,sex))
for v in zip(name,age,sex):
print("姓名:{};年龄:{};性别:{}".format(v[0],v[1],v[2]))
# _*_ coding: utf-8 _*_
from pprint import pprint#格式化输出工具
from prettyprinter import cpprint #颜色格式化输出
"""
[
("张三","李四","王五","赵六"),
(18,19,20,21,22,23),
("保密","男","女","男")
]
变成
[
('张三',18,'保密'),
('李四',19,'男'),
('王五',20,'女’),
('赵六',21,'男')
]
解题思路:把行转化为列
"""
name=("张三","李四","王五","赵六")
age=(18,19,20,21,22,23)
sex=("保留","男","女","男")
print(zip(name,age,sex))
print(list(zip(name,age,sex)))
#*args表示不定长的位置参数
def zip_ext(*args):
print(args)
col,row,row_length_arr,data=None,None,[],[]#分别定义列、行、行长度列表
arr=[name,age,sex]
pprint(arr)
for v in [name,age,sex]:
row_length_arr.append(
len(v)
)
row=min(row_length_arr) #通过行长度列表获取最小值得到最适合的行数
col=len(args) #得到列数
for x in range(0,row):
data.append([])
for y in range(0,col):
data[x].append(arr[y][x])
data[x]=tuple(data[x])
#pprint(data)
return data
#调用函数
res=zip_ext(name,sex,age)
res=zip_ext(name,sex,age)
print(res)
# _*_ coding: utf-8 _*_
person=dict(
id="001",
name="张三",
age=18,
sex="男",
height=180,
weight=70
)
#取出所有键进行遍历
#print(person.keys())
for k in person.keys():
print("{}=>{}".format(
k,
person[k]
))
print("-----------------------------")
# 取出所有值进行遍历
#print(person.values())
for v in person.values():
print(v)
print("-----------------------------")
#取出键值对进行遍历
#print(person.items())
for k,v in person.items():
print("{}=>".format(k,v))
print("-----------------------------")
#enumerate()用到列表和元组中取出索引和值
#print(list(enumerate(person)))
for i,k in enumerate(person):
print("{}:{}=>{}".format(
i,k,person[k]
))
# _*_ coding: utf-8 _*_
data=[
{"name":"张三","affress":"北京"}
{"name":"李四","affress":"北京"}
{"name":"王五","affress":"北京"}
{"name":"赵六","affress":"北京"}
{"name":"孙七","affress":"北京"}
{"name":"小明","affress":"北京"}
]
for v in data:
print("姓名:{},家乡:{}".format(v['name'],v['address']))
print("--------------------------------------------------------")
#**变量:不定长关键字参数**v=>name=xxx,address=xxx
for v in data:
print("姓名:{name},家乡:{address}".format(**v))
# _*_ coding: utf-8 _*_
#查看range的帮助手册
import math
help(range)
"""
1.break,中止循环,跳出循环
2.continue,跳过符合条件的循环,不符合还会继续往下执行
3.pass,保持程序结构完整性
4.for...else...,循环结束执行else里面的代码块
"""
"""
推导列表思路一:
1.定义一个空列表
2.使用循环
3.追加值到列表中去
arr=[]
for v in range(1,11):
arr.append(v)
print(arr)
n1=[v ** 3 for v in range(1,11)
pirnt(n1)
"""
langs=['python','java','php','javascript','html','css']
n4=[v.upper for v in langs]
print(n4)
print("--------------------")
n2=[round(math.sqrt(v),1)for v in range(1,11)]
print(n2)
print("-----------------------")
n3=[m**3 for m in range(1,11)]
print(n3)
print("--------------------------------")
n5=[n%5==0 for n in range(1,101)]
print(n5)
print("------------------------------------")
n5=[v for v in range(1,101) if v % 5==0 and v %3==0]
"""
n5=[v for v in range(1,101) if v % 5 == 0 if v % 3==0]
n5=[]
for v in range(1,101):
if v % 5==0:
if v % 3==0:
n5.append(v)
print(n5)
"""
# -*- coding: utf-8 -*-
from prettyprinter import cpprint
"""
题1:
已知:
name = ("小明","小丽","小美")
age = (18,16,17)
sex = ("男","女","女")
height = (175,160,155)
weight = (65,50,45)
列表推导式推导出:
[
{"name":"小明","age":18,"sex":"男","height":175,"weight":65},
{"name":"小丽","age":16,"sex":"女","height":160,"weight":50},
{"name":"小美","age":17,"sex":"女","height":155,"weight":45}
]
-------------------------------------------
题2:
已知:
persons = (
("小明","小丽","小美"),
(18,16,17),
("男","女","女"),
(175,160,155),
(65,50,45)
)
列表推导式推导出:
[
{"name":"小明","age":18,"sex":"男","height":175,"weight":65},
{"name":"小丽","age":16,"sex":"女","height":160,"weight":50},
{"name":"小美","age":17,"sex":"女","height":155,"weight":45}
]
"""
# 题2(*args:不定长位置参数)
def zip_ext(*args):
col, row, row_length_arr, data = None, None, [], [] # 分别定义列、行、行长度列表、结果
# pprint(arr)
for v in args:
row_length_arr.append(
len(v)
)
row = min(row_length_arr) # 通过行长度列表获取最小值得到最适合的行数
col = len(args) # 得到列数
for x in range(0, row):
data.append([])
for y in range(0, col):
data[x].append(args[y][x])
data[x] = tuple(data[x])
return data
persons = (
("小明", "小丽", "小美"),
(18, 16, 17),
("男", "女", "女"),
(175, 160, 155),
(65, 50, 45)
)
cpprint(zip_ext(*persons))
print("------------------")
# 把行变为列
persons_list = [
dict(
name=v[0],
age=v[1],
sex=v[2],
height=v[3],
weight=v[4]
)
for v in zip_ext(*persons)
]
cpprint(persons_list)
# -*- coding: utf-8 -*-
from prettyprinter import cpprint
"""
题1:
已知:
name = ("小明","小丽","小美")
age = (18,16,17)
sex = ("男","女","女")
height = (175,160,155)
weight = (65,50,45)
列表推导式推导出:
[
{"name":"小明","age":18,"sex":"男","height":175,"weight":65},
{"name":"小丽","age":16,"sex":"女","height":160,"weight":50},
{"name":"小美","age":17,"sex":"女","height":155,"weight":45}
]
"""
name = ("小明", "小丽", "小美")
age = (18, 16, 17)
sex = ("男", "女", "女")
height = (175, 160, 155)
weight = (65, 50, 45)
persons = [
{
"name": v[0],
"age": v[1],
"sex": v[2],
"height": v[3],
"weight": v[4]
} for v in zip(name, age, sex, height, weight)
]
cpprint(persons)
# _*_ coding: utf-8 _*_
a=b=[1,2,3,4,5,6,7,8,9]
data=[x*y for x in a for y in b]
print(data)
# _*_ coding: utf-8 _*_
# 迭代器,是一个记录遍历位置的对象
a=[1,2,3,4,5]
b=range(10,21)
c=('a','b','c','d','e')
print(a,type(a))
print(b,type(b))
print(c,type(c))
print("-----------------------")
#iter():把可迭代的对象转化为迭代器,类型是以_iterator为后缀
a0=iter(a)
b0=iter(b)
c0=iter(c)
print(a0,type(a0))
print(b0,type(b0))
print(c0,type(c0))
#迭代器迭代完,就释放了,节省内存开支
#序列迭代完不会完全释放,程序进程结束才会释放
#next()访问迭代器下一个值
print(next(a0))
print(next(a0))
print(next(a0))
print(next(a0))
print(next(a0))
print(next(a0))#超过范围出现Stopitera报错
#通过for循环不用异常处理,while循环加上异常处理
"""
异常处理
try
测试的代码块
except 异常:
异常处理代码块
else:
没有发生异常的代码块
finally:
无论是否发生异常都执行的代码块
"""
while True:
try:
print(next(b0))
except StopIteration:
break #出现停止迭代的异常,直接跳出循环
# _*_ coding: utf-8 _*_
import sys # 系统模块
import time # 时间模块
start_time = time.time() # 开始是多少秒
# 列表推导式,推导1~1000000
arr = [v for v in range(1, 100000000)]
#生成器,是一种特殊迭代器,推导出来对象占用内存空间就非常小,因为它记录位置的规则
arr_size=sys.getsizeof(arr)#获取对象占用的内存空间,单位是bytes
print(arr_size)
help(sys.getsizeof)
stop_time = time.time() # 停止是多少秒
print("用时:{}s".format(stop_time - start_time))