Мне нужен мой код Python, чтобы быть проще и профессиональнее - PullRequest
0 голосов
/ 01 февраля 2019

Я написал в Python функцию, которая включает цикл и некоторые условные операторы.Я хотел бы знать, как я могу упростить код.

Программа должна делать следующее:

Написать функцию с именем "middle", которая берет список и возвращает новый список, которыйсодержит все элементы, кроме первого и последнего.

Я использую оператор "if" и три оператора "elif", где два из этих операторов "elif" повторяют две строки кода.Программа работает отлично.Но у меня есть ощущение, что оно может быть написано более профессионально (то есть элегантно и короче).

def middle():
    i=0
    list=[]   #an empty list
    while True:
        entry=input("Enter the list memeber:  ")
        if entry !="done":
            list.append(entry)
            i=i+1
        elif i==0:
            print("Your list is empty :(!")
            exit()
        elif i==1:
            del list[0]
            print("The remaining list is:  ", list)
            exit()
        elif i>=2:
            del list[0]
            del list[-1]
            print("The remaining list is:  ", list)
            exit()
middle()

Ответы [ 3 ]

0 голосов
/ 01 февраля 2019

Вы можете нарезать список:

def middle(sample_list):
    sample_list = sample_list[1:-1] # Starting from the second element until one before the last
    print(sample_list) # Print out the list
    return sample_list
middle([5,6,4,3,1]) # Call middle with list as an argument

Вывод:

[6, 4, 3]

Вот превосходное сообщение о срезах и нотации срезов, чтобы помочь вам понять этов дальнейшем.

0 голосов
/ 05 февраля 2019

Вы можете решить это с помощью

a = [1,2,3,4,5]

b = a [1: -1]

print (б)

0 голосов
/ 01 февраля 2019

Вы можете использовать нарезку списка, например:

if len(array) > 1:
    array = array[1:-1]
    print("Remaining list is :", array)

else:
    print("Your list is too small")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...