簡體   English   中英

Python - 循環移位列表(但不是整個索引)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM