[py]列表生成式-支持条件,多值的拼接

列表生成式

  • 代码简洁一些
  • 支持多条件, 过滤,或拼接某些值
  • 支持返回多值
  • 是一种生成式
# 生成一个列表
print(list(range(1, 11)))

# 生成一个列表x^2
## 方法1: 返回x^2的数列
arr = []
for i in range(1, 11):
    arr.append(i * i)
print(arr)

## 方法2:生成式
print([x * x for x in range(1, 11)])
##加条件
print([x * x for x in range(1, 11) if x % 2 == 0])

#返回2个值, 2个值之间要写+,总之不能是空格
print([m + n for m in "ABC" for n in "xyz"])

##############################################


# 实现ls
import os
print([d for d in os.listdir('.')])
print('---------------------')

## 字典的生成式
d = {'x': 'A', 'y': 'B'}
for k, v in d.items():
    print(k, v)
    
# print([k,v for k,v in d.items()])
#返回2个值, 2个值之间要写+,总之不能是空格
print([k + v for k, v in d.items()])

## 栗子1: 返回小写
arr = ["Mao", "Tai"]
print([i.lower() for i in arr])


## 栗子2: 返回arr中字符串的小写
## 方法1:
L1 = ['Hello', 'World', 18, 'Apple', None]
arr_tmp = []
for i in L1:
    if isinstance(i, str):
        print(11)
        arr_tmp.append(i.lower())
print(arr_tmp)

## 方法2: 生成式
print([i.lower() for i in L1 if isinstance(i, str)])

原文地址:https://www.cnblogs.com/iiiiiher/p/8328971.html