Python 生成器相关知识

  • 循环模式:[变量(加工后的变量) 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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球