Python 列表推导式

欢迎指错以及交流

列表推导式的语法是一种简洁的方式来创建列表。

在这个例子中,列表推导式的结构是 [int(i) for i in input().split(' ')]:

  • input().split(' '):将输入的一行字符串按空格分割成一个字符串列表。

  • int(i):将列表中的每个字符串转换为整数。

  • for i in input().split(' '):遍历字符串列表中的每个字符串。

因此,使用列表推导式可以方便地将输入的一行包含多个数字的字符串转换为整数列表,方便后续对这些数字进行操作,比如找出最大值等。

example:找最大值

print(max([int (i) for i in input().split(' ')]))

i for i 是Python中的列表推导式(list comprehension),用于快速创建列表。列表推导式的一般形式是 [expression for item in iterable if condition],其中 expression 是用来生成新元素的表达式,item 是迭代的元素,iterable 是可迭代对象,condition 是可选的筛选条件。

example:

# 定义队列list

queue_list = [1, 22, 34, 27, 3, 58, 69, 100, 3, 48, 95, 20]

# (1) 查找元素3所在的索引

index_3 = [i for i, x in enumerate(queue_list) if x == 3]

print("(1) 元素3所在的索引:", index_3)

# (2) 反向查找元素3所在的索引

reverse_index_3 = [i for i, x in enumerate(queue_list[::-1]) if x == 3]

reverse_index_3 = [len(queue_list) - i - 1 for i in reverse_index_3]

print("(2) 元素3在反向查找中的索引:", reverse_index_3)

# (3) 查找所有大于或小于50的元素

greater_than_50 = [x for x in queue_list if x > 50]

less_than_50 = [x for x in queue_list if x < 50]

print("(3) 大于50的元素:", greater_than_50)

print("    小于50的元素:", less_than_50)

# (4) 从元素58开始查找元素3所在的索引

index_3_after_58 = [i for i, x in enumerate(queue_list[queue_list.index(58):]) if x == 3]

if index_3_after_58:

    index_3_after_58 = index_3_after_58[0] + queue_list.index(58)

else:

    index_3_after_58 = -1

print("(4) 从元素58开始查找元素3所在的索引:", index_3_after_58)

# (5) 把索引为7的元素的值修改成66

queue_list[7] = 66

print("(5) 修改索引为7的元素的值为66后的队列:", queue_list)

以下是代码的详细解释:

  1. (1) 查找元素3所在的索引:

    • 使用列表推导式 [i for i, x in enumerate(queue_list) if x == 3],遍历队列 queue_list 中的元素和对应的索引,找出所有值为3的元素的索引。

  2. (2) 反向查找元素3所在的索引:

    • 使用列表推导式 [i for i, x in enumerate(queue_list[::-1]) if x == 3],将队列逆序后遍历元素和对应的索引,找出所有值为3的元素在逆序队列中的索引。

    • 将逆序队列中的索引转换回原队列中的索引。

  3. (3) 查找所有大于或小于50的元素:

    • 使用列表推导式 [x for x in queue_list if x > 50] 和 [x for x in queue_list if x < 50],找出队列中大于50和小于50的元素。

  4. (4) 从元素58开始查找元素3所在的索引:

    • 使用列表推导式 [i for i, x in enumerate(queue_list[queue_list.index(58):]) if x == 3],从元素58开始截取队列并遍历元素和对应的索引,找出元素3在截取队列中的索引。

    • 如果找到元素3,则将索引转换回原队列中的索引。

  5. (5) 把索引为7的元素的值修改成66:

    • 直接通过索引访问队列元素并修改值,例如 queue_list[7]

  • 24
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静琳同学在学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值