3 回答

TA贡献1824条经验 获得超8个赞
像这样尝试:
def arrangement(numerical_representation):
start = 65
result = []
for n in numerical_representation:
result.append('{}-{}'.format(chr(start), chr(start+n-1)))
start += n
return ' '.join(result)
print(arrangement((5, 3, 11, 7)))
#A-E F-H I-S T-Z

TA贡献1783条经验 获得超4个赞
您需要使用+=代替=:
def arrangement(numerical_representation):
interval = ''
step = 65
for integer in numerical_representation:
interval += chr(step) + '-' + chr(step + integer - 1)
step += integer
return interval
>>> arrangement((5, 3, 7, 11))
'A-EF-HI-OP-Z'
另一种选择,如何使用yield?
def arrangement(numerical_representation):
interval = ''
step = 65
for integer in numerical_representation:
interval = chr(step) + '-' + chr(step + integer - 1)
step += integer
yield interval
>>> ''.join([x for x in arrangement((5, 3, 7, 11))])
'A-EF-HI-OP-Z'

TA贡献1799条经验 获得超9个赞
您可以有一个列表并将每个间隔附加到它。最后返回列表
def arrangement(numerical_representation):
interval = ''
step = 65
l=[]
for integer in numerical_representation:
interval = chr(step) + '-' + chr(step + integer - 1)
step += integer
l.append(interval)
return " ".join(l)
arrangement((5, 3, 11, 7))
A-E F-H I-S T-Z
添加回答
举报