Python(五)推导式

Posted on 2021-04-25 15:48  MissRong  阅读(62)  评论(0)    收藏  举报

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类型

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3