# python 学习笔记 列表生成
# 生成 L=[1,2,3,4,5,6,7,8,9,10] 列表可以用列表生成器
# list(range(1, 11)) 问题 待定
M = []
for x in range(1, 11):
M.append(x*x)
print(M)
K = [x*x for x in range(2, 11)]
print(K)
# for 循环还可以加判断
P = [x*x for x in range(2, 11) if x % 2 == 0]
print(P)
# 使用两层循环实现全排列
N = [m+n for m in 'ABC' for n in 'xyz']
print(N)
G =[x+y for x in range(3, 6) for y in range(4, 6)]
print( G)
# for循环可以一次使用多个变量,比如 dict 的 items()可以同时迭代values 和key
dict = {'L': 'M','s': 'j'}
for k, v in dict.items():
print(k, '=', v)
# 列表生成式可以用两个变量来生成list
F = [k + '=' + v for k, v in dict.items()]
print(F)
B = [s.lower() for s in F]
print(B)
# 如果 list 中既有 整数又有字符,list 生成式 会报错,由于非字符串类型没有lower()方法,所以列表生成式会报错
L = ['Hello', 'World', 18, 'Apple', None]
#用内建的isinstance函数可以判断一个变量是不是字符串:请修改列表生成式,通过添加if语句保证列表生成式能正确地执行:
Z = [s.lower() for s in L if isinstance(s, str)]
print(Z)
#H:\pythontest\venv\Scripts\python.exe H:/pythontest/Test.py print 的结果
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[4, 9, 16, 25, 36, 49, 64, 81, 100]
[4, 16, 36, 64, 100]
['Ax', 'Ay', 'Az', 'Bx', 'By', 'Bz', 'Cx', 'Cy', 'Cz']
[7, 8, 8, 9, 9, 10]
L = M
s = j
['L=M', 's=j']
['l=m', 's=j']
['hello', 'world', 'apple']