Python(五)推导式
一、推导式
#1、将0-10添加到列表
myList = []
for i in range(10):
    myList.append(i)
    pass
print("myList:",myList)
#列表推导式
myList1 = [i for i in range(10)]
print("myList1:", myList1)
#2、将偶数加入到列表中
myList2 = []
for i in range(10):
    if i % 2 == 0:
        myList2.append(i)
        pass
print("myList2:", myList2)
#列表推导式
myList3 = [i for i in range(10) if i % 2 == 0]
print("myList3:", myList3)
#3、数字折位
num = 4321
test = [int(num / 10 ** i % 10) for i in range(0, 4)]
test.reverse()
print(test)
#[4, 3, 2, 1]
#使用()代替原先的[]将会得到一个generator生成器对象
kk = "asdfghj"
gen = (i for i in kk)
print(gen)
item = iter(gen)
for i in range(len(kk)):
    print(next(item))
 
二、字典推导式
map1 = {"name":"张三","password":"123"}
for k,v in map1.items():
    print(k, v)
map2 = {k:(v + "123") for k, v in map1.items()}
print(map2)
map3 = {(v + "123"):k for k, v in map1.items()}
print(map3)
#字典推导式
mcase = {'a':10, 'b':34, 'A':7, 'Z':3}
mcase_frequence = {
    k.lower:mcase.get(k.lower(), 0) + mcase.get(k.upper(), 0)
    for k in mcase.keys()
    if k.lower() in ['a','b']
}
print(mcase_frequence)
 
三、集合推导式
def aa(i):
    return i ** 2
list1 = [3, 45, 12, 4, 6]
list2 = {aa(i) for i in list1 if i % 2 == 0}
print(list2)
print(type(list2)) #输出list2类型