我是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
处引发语法错误。
谢谢!
答案 0 :(得分:1)
您提供的输入不是有效的语法。我的答案假设您可以将输入内容修改为有意义的内容,例如[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]
答案 1 :(得分:0)
使用当前输入值,由于语法上的错误,无法获得预期的结果。
IDs = ['1','3:7','9','12:15'] # strings of value
res=[]
for i in IDs:
if ':' in i:
temp=i.split(':')
res.extend(list(range(int(temp[0]), int(temp[1]) + 1)))
else:
res.append(int(i))
print(res)
[1, 3, 4, 5, 6, 7, 9, 12, 13, 14, 15]