python学习_7_列表生成式、三元表达式、循环二维数组、函数入参声明

#1.列表生成式
import random
red_num=random.sample(range(1,34),6)
new_num=[]
#for num in red_num:#list循环
#    tmp=str(num).zfill(2)#补零
#    new_num.append(tmp)#放到新的List中
new_num=[str(num).zfill(2) for num in red_num]#列表生成式, 直接循环补零并放到新的List中
print(new_num)

l=[i for i in range(1,11,2)]#生成100以内的奇数, 每次for循环取到的i放到list里
print(l)#[1,3,5,7,9]
#列表生产式生成一个list,它把所有元素放在内存中。以空间换时间,内存占用大,但是不用再计算省cpu

#2.列表生成器
l1 = (i for i in range(1,11,2))#生成器
print(l1) #结果是:<generator object <genexpr> at 0x0000000000689E08>
for i in l1:
    print(i)#结果是:1 3 5 7 9
generator生成器比list节省内存,生成器每次循环时,根据计算规则算出一个元素,放到内存里面

#3.三元表达式
a=5
b=4
c=a if a>b else b#如果a>b,则c=a,否则, c=b
print(c)

#4.循环二维数组
d={'a':5,'c':3,'b':2}
d.items()#返回二维数组dict_items([('c', 3), ('a', 5), ('b', 2)])
res_key=sorted(d.items())#对字典的key排序,结果是二维list[('a', 5), ('b', 2), ('c', 3)]
print(res_key)
res_value=sorted(d.items(),key=lambda x:x[1])#对字典的value排序,结果是二维list[('b', 2), ('c', 3), ('a', 5)]
print(res_value)
for k,v in res_value:#循环res_value中的每一个元素
    print(k,v)

l=[
    [1,2,3,4],
    [5,6,7,8],
    ['a','b','c','d']
]
for a,b,c,d in l:#循环二维数组
    print(a,b,c,d)#打印二维数组每个元素中的子元素

#5.函数入参声明
def is_float(a:str):#指定传入的a参数是str, 但不是强制的
    print(a)
is_float('我')#打印'我'
is_float(['123','123'])#打印['123','123'],说明入参list也不影响程序运行

猜你喜欢

转载自blog.csdn.net/sylvia2016/article/details/80377917