首页 > 解决方案 > Python - 为值和范围列表设置 for 或 while 循环

问题描述

我是 python 新手,很抱歉问这个简单的问题。我有一组 ID 和一系列 ID。我的 ID 看起来像这样,

IDs = [1,3:7,9,12:15]

我想要一个用于 ID 的 for/while 循环并打印 ID,

例如:

for ID in IDs:
    print(ID)

我希望打印为:1,3,4,5,6,7,9,12,13,14,15。可能吗?在当前形式的 ID 和 for 循环中,它会在3:4.

谢谢!

标签: pythonpython-3.x

解决方案


您提供的输入不是有效的语法。我的回答假设您可以将输入修改为有意义的内容,例如[1, '3:7', 9, '12:15'].

它不是防弹的,但我相信它会引导你朝着正确的方向前进。

IDs = [1, '3:7', 9, '12:15']

output = []

for element in IDs:
    if isinstance(element, int):
        output.append(element)
    else:
        start, end = map(int, element.split(':'))
        output.extend(range(start, end + 1))

print(output)
# [1, 3, 4, 5, 6, 7, 9, 12, 13, 14, 15]

推荐阅读