Python之列表推导式(含例题)
列表推导式:
最终得到的是⼀个列表
格式1:
数据库系统的主要作用是
list1 = [ i for i in range(1,21) ]          (其中最左边i,是输出列表中的元素)
指针变量为什么占4个地址等价于简单代码:
list1 = []
for i in range(1, 21):
list1.append(i)
print(list1)
输出结果为:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
格式2:
list2 = [ i for i in range(0,101) if i%2==0 ]              (带if条件判断的)
等价于简单代码:
list2 = []
for i in range(0,101):kyoto protocol
if i%2==0:
list2.append(i)程序英语
含义为:在list2⾥放⼊,0~101以内可以被2整除的数
还可以这样使⽤:
list3 = ['66', '007', 'jsy', 'JSY', 'main']
list4 = [word for word in list3 if word.isalpha()]
print(list4)
⼤致规律是,列表推导式左边为输出元素,然后从左⾄右进⾏嵌套执⾏的顺序
将list3中全字母的元素取出放在list4中
输出:
['jsy', 'JSY', 'main']
格式3:(可迭代指⼀个范围,使for可循环遍历)
list = [结果1 if 条件  else  结果2  for i in 可迭代]    (当条件语句含else时,分情况输出)
举例⼦:#如果是 h 开头的则将⾸字母⼤写,不是 h 开头则全部⼤写
list1 = ['66', 'hhh', 'jsy', 'JSY', 'main']
list2 = [word.title() if word.startswith('h') else word.upper() for word in list1]  # 对于列表元素的修改
python基础代码练习print(list2)
含义为: 在最右侧for循环的基础上
当if 条件成⽴,输出左边的 word.title()
不成⽴,输出else右边的 word.upper()
结果为:
['66', 'Hhh', 'JSY', 'JSY', 'MAIN']
格式4:两层for循环
举例:
new_list = []
for i in range(1, 5):
for j in range(1, 4):
new_list.append((i, j))
print(new_list)
结果为:
[(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3), (4, 1), (4, 2), (4, 3)]
使⽤列表推导式:  (达到简化代码的⽬的)
# 下为使⽤列表推导式(简化)
list6 = [(i, j) for i in range(1, 5) for j in range(1, 4)]
print(list6)
输出同上。
列表推导式练习题:
1.请写出⼀段Python代码,实现分组⼀个 list ⾥⾯的元素,⽐如[1,2,3,4,5,6,...,100],变成[[1,2,3],[4,5,6],...]通过利⽤列表的下标,步长和切⽚操作解决问题
test1 = [i for i in range(1, 101)]
print(test1)
test2 = [test1[j:j + 3] for j in range(0, len(test1), 3)]
print(test2)
示范英文输出结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18], [19, 20, 21], [22, 23, 24], [25, 26, 27], [28, 29, 30], [31, 32, 33], [34, 35, 36], [37, 38, 39], 2.出下列表⾥名字含有两个 'e' 的放到新列表中:
name = [['Tom','Billy','Jefferson','Andrew','Wesley','Steven','Joe'],
['Alice','Jill','Ana','Wendy','Jennifer,'Sherry','Eva']]
name = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]
test3 = [i for j in name for i in j unt('e')==2]
print(test3)
输出:
['Jefferson', 'Wesley', 'Steven', 'Jennifer']

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。