- 循环模式:[变量(加工后的变量) for 变量 in iterable] 例一:一行代码实现for循环产生有规律的列表
list1=[i for i in range(1,11)]
print(list1)
>>>[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
例二:将10以内所有整数的平方放入列表
pflist=[i**2 for i in range(1,11)]
print(pflist)
>>>[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
例三:将50以内所有偶数放入列表
list1=[i for i in range(2,51,2)]
print(list1)
例四:从Python1期到Python100期写入列表。
list2=[f'Python{i}期' for i in range(1,101)]
print(list2)
- 筛选模式:[变量(加工后的变量) for 变量 in iterable if 条件] 在循环模式下,满足条件的放入列表 例一:30以内能被3整除的数放入列表
list1 = [i for i in range(1, 31) if i % 3 == 0]
print(list1)
>>>[3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
例二:过滤掉长度小于3的字符串列表,并将剩下的转换成大写
l1 = ['abc', 'a', 'h', 'inter', 'amwk', 'ce', 'sk', 'at', 'apple', 'c', 'reset']
print([i.upper() for i in l1 if len(i) >= 3])
>>>['ABC', 'INTER', 'AMWK', 'APPLE', 'RESET']
例三:含有两个’e’的所有的人名全部大写留下来
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
print([name.upper() for i in names for name in i if name.count('e')==2])
>>>['JEFFERSON', 'WESLEY', 'STEVEN', 'JENNIFER']
Original: https://www.cnblogs.com/amwkvi/p/14078347.html
Author: amwkvi
Title: Python 生成器相关知识
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/643531/
转载文章受原作者版权保护。转载请注明原作者出处!