#生成1-5的平方数列表 squares=[x**2 for i in range(1,6)]print(squares) #输出[1,4,9,16,25] #字符串长度列表 words=["apple","book","car"]lengths=[len(word) for word in words]print(lengths) #输出[5,4,3]
4、条件筛选(if子句)
在for循环后添加if条件,过滤不符合条件的元素:
1 2 3 4
#筛选1-10中的偶数 evens=[x for x in range(1,11) if x%2==0]print(evens) #输出[2,4,6,8,10] #提取长度超过3的单词 words=["apple","book","car"]long_words=[word for word in words if len(word)>3]print(long_words) #输出["apple","book"]
5、多层循环(嵌套for循环)
可在列表推导式中使用多个for循环(类似嵌套循环):
1 2 3 4
#两个列表元素的组合 a=[1,2]b=[3,4]pairs=[(x,y) for x in a for y in b]print(pairs) #输出结果:[(1,3),(1,4),(2,3),(2,4)] #二维列表行列交换 lst=[[1,2],[3,4],[5,6]]trans_lst=[[row[i] for row in lst] for i in range(2)]print(trans_lst) #输出结果:[[1,3,5],[2,4,6]]
6、条件嵌套(if-else表达式)
如果需在表达式中使用条件逻辑,需将if-else放在表达式后:
1 2 3 4
#正数保留,负数转为0 num=[1,-2,3,-4]result=[x if x>0 else 0 for x in num]print(result) #输出:[1,0,3,0] #字符串分类(长度>3转换成大写,否则转为小写) words=["hi","python","java"]trans_words=[word.upper() if len(word)>3 else word.lower() for word in words]print(trans_words) #输出:["hi","PYTHON","JAVA"]
7、与函数结合
1 2 3 4 5 6
#使用自定义函数处理元素 def double(x): #加倍 return x*2 num=[1,2,3,4] double_lst=[double(i) for i in num] print(double_lst) #输出:[2,4,6,8]
8、集合与字典推导式
1 2 3 4
#集合推导式(自动去重) unique_set={x**2 for x in [1,2,2,3]}print(unique_set) #输出:{1,4,9} #字典推导式 word_dict={word:len(word) for word in ["apple","banana"]}print(word_dict) #输出:{"apple":5,"banana":6}