旋转数字列表直到所有数字都移回原始位置的程序
program to rotate list of numbers until all numbers have moved back to origional position
我正在尝试编写一个程序,如果用户输入一个列表,该程序会读取一个列表,并在每次交互时将列表中的数字旋转一个位置,直到数字到达起始位置。
输出应该是这样的
Input a list: 1 2 3 4
1,2,3,4
2,3,4,1
3,4,1,2
4,1,2,3
1,2,3,4
我已经编写了一个程序来达到预期的结果,但它不让用户输入一个数字,它只是硬编码到程序中。我怎样才能改变我的代码以产生所需的输出?
请参阅下面的代码:
def rotation(series): # change this to input a list
for i in range(len(series) + 1):
print(series)
series = series[1:] + series[:1]
rotation([1,2,3,4])
您可以使用 input
函数获取用户输入。输入将是一个字符串,因此您必须使用 str.split
方法将其拆分以从输入创建一个列表。
像这样:
user_input = input("Input a list: ") # input = '1 2 3 4'
seq = user_input.split() # seq = ['1','2','3','4']
def rotation(nums):
for i in range(len(nums)+1):
rotated = nums[i:] + nums[:i]
print(','.join(rotated))
rotation(seq)
我正在尝试编写一个程序,如果用户输入一个列表,该程序会读取一个列表,并在每次交互时将列表中的数字旋转一个位置,直到数字到达起始位置。
输出应该是这样的
Input a list: 1 2 3 4
1,2,3,4
2,3,4,1
3,4,1,2
4,1,2,3
1,2,3,4
我已经编写了一个程序来达到预期的结果,但它不让用户输入一个数字,它只是硬编码到程序中。我怎样才能改变我的代码以产生所需的输出?
请参阅下面的代码:
def rotation(series): # change this to input a list
for i in range(len(series) + 1):
print(series)
series = series[1:] + series[:1]
rotation([1,2,3,4])
您可以使用 input
函数获取用户输入。输入将是一个字符串,因此您必须使用 str.split
方法将其拆分以从输入创建一个列表。
像这样:
user_input = input("Input a list: ") # input = '1 2 3 4'
seq = user_input.split() # seq = ['1','2','3','4']
def rotation(nums):
for i in range(len(nums)+1):
rotated = nums[i:] + nums[:i]
print(','.join(rotated))
rotation(seq)