make_position_string(长度) 获取状态的长度并返回 字符串01234 ...将在交互中显示以使其更容易 用户选择要移动的对的位置:
make_position_string(18) “012345678901234567’
这就是我的作品:
def make_position_string(length):
new = []
for i in range(length):
print(i, end = "")
new += str(i)
return new
它可以像这样显示字符串中的数字:make_position_string(12) 01234567891011 [' 0',' 1',' 2',' 3',' 4',&#39 ; 5',' 6',' 7',' 8',' 9',' 1' ,' 0',' 1',' 1'],所以如何让它只返回像示例一样的数字。我知道我需要使用[-1],但我不知道在哪里/如何使用它。有人可以帮忙吗?谢谢。
答案 0 :(得分:2)
模运算符(%
)可能会对此有所帮助。数字的“1”数字只是数字除以10时的余数。(例如,17除以10是1,余数为7.因此17//10
为1而17%10
为{1}}是7。)
试试这个:
new += str(i%10)
参考文献:
答案 1 :(得分:0)
你是对的,可以使用[-1]
完成,但你需要在2个地方以最直接的方式使用你的代码
new = []
for i in range(length):
print(str(i)[-1], end = "")
new += str(i)[-1]
return new
如果您只对创建new
感兴趣,可以使用列表理解
new = [str(i)[-1] for i in range(length)]
答案 2 :(得分:0)
基于其他人发布的内容,使用模运算符%
是可行的方法。考虑构建一个列表并最终连接,因为通过逐个附加字符来构建一个(不可变的)字符串是O(length ^ 2):
def make_position_string(length):
return ''.join([str(i%10) for i in range(length)])
如果你只有短的字符串可能不太相关,join
和列表理解似乎是best。