[英]Python - Circular Shift Lists (but not the whole index)
所以基本上我想讓列表向左移動但每個索引只有一位數字。 例如:如果我有這個列表[123,45678,90]
我想得到這個[234,56789,1]
另一個例子只是為了確保從這個[12,34,56]
我想得到這個[23,45,61]
我到目前為止所做的是
def main():
lst_lenght = int(input("Enter the lenght of the list:")) #amount of indexes
lst_elements = create_list(lst_lenght)
print(lst_elements)
def create_list(y):
lst = []
for i in range(y):
x = int(input('Enter the list elements:'))
lst.append(x)
return lst
然后我嘗試做 function 我將得到數字的第一位數字(在每個索引中)在此之后我只是想刪除數字並將它放在索引的末尾,然后它除了第一個索引將 go 到最后一個一。
不幸的是,我無法做到這一點,我被卡在了這一部分,希望得到你的幫助,非常感謝!
您可以通過列表理解來做到這一點。 新列表中的每個元素都是通過使用item[1:]
(該項目中第一個數字之后的所有內容)加上next_item[0]
(下一個項目的第一個數字)來定義的。
為此,如果您將其作為字符串列表進行操作,然后轉換回整數以返回,則更容易。
def shifted_list(lst):
str_lst = [str(x) for x in lst]
str_lst_shifted_by_one = str_lst[1:] + [str_lst[0]]
shifted_str_lst = [item[1:] + next_item[0] for item, next_item in zip(str_lst, str_lst_shifted_by_one)]
return [int(x) for x in shifted_str_lst]
print(shifted_list([123,45678,90])) # [234, 56789, 1]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.