如何在循环中迭代此列表?我是初学者,Python 是我的第一语言

问题描述 投票:0回答:1

Zybooks 使用说明

列表 data_list 包含从输入读取的整数,表示数据值序列。对于 data_list 的每个索引 i 从 1 到倒数第二个索引:

如果索引 i 处的元素大于前一个元素和后一个元素,则该元素是预感。 如果索引 i 处的元素是预感,则输出 'Hunch: ',后跟前一个元素、当前元素和后一个元素,每个元素之间用空格分隔。

示例

例如:如果输入是 12 14 72 52,那么输出是:

  • 序列:[12,14,72,52]
  • 预感:14 72 52

Zybooks 代码

tokens = input().split()

data_list = []
for token in tokens:
    data_list.append(int(token))

print(f'Sequence: {data_list}')

我的代码来完成 zybooks 代码

for i, data in enumerate(data_list[1: -2]):
    if data_list[i] > data_list[i - 1] and data_list[i] > data_list[i + 1]:
        print(f"Hunch: {data_list[i - 1]} {data_list[i]} {data_list[i + 1]}")

输出为 12, 14, 72, 52##

  • 序列:[12,14,72,52]
python python-3.x list loops iterable
1个回答
0
投票

更短的输入方式,四种解决方案。

seq = list(map(int, input().split()))

for a, b, c in zip(seq, seq[1:], seq[2:]):
    if a < b > c:
        print('Hunch:', a, b, c)

a = b = None
for c in seq:
    if None is not a < b > c:
        print('Hunch:', a, b, c)
    a, b = b, c

b = float('nan')
for c in seq:
    if c < b > a:
        print('Hunch:', a, b, c)
    a, b = b, c

a, b = seq[:2]
for c in seq[2:]:
    if a < b > c:
        print('Hunch:', a, b, c)
    a, b = b, c

在线尝试!

© www.soinside.com 2019 - 2024. All rights reserved.