Пример значения соседа из списка - PullRequest
0 голосов
/ 22 апреля 2020

Допустим, у меня есть список:

[Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec]

, и я случайным образом выбираю индекс (скажем, idx = 4, то есть "май"), я хочу, чтобы моя функция возвращала

[Mar,Apr,May,Jun,Jul]

Если индекс равен 0 (январь) или 1 (февраль), тогда я хочу, чтобы моя функция возвращала [Jan,Feb,Mar,Apr,May]. Длина возвращаемого списка всегда равна 5.

Как создать такую ​​функцию в Python3?

Простой вопрос, но почему моя голова начинает взрываться?

Спасибо.

Ответы [ 3 ]

1 голос
/ 22 апреля 2020
if index<=2 or :
   print(list[:5])
elif index>=len(list)-2:
   print(list[-5:])
else:
   print(list[index-2:index+2])
1 голос
/ 22 апреля 2020

Примерно так:

monthes = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

def myfunc(choices, index):
    start = min(max(index - 2, 0), len(choices) - 5)
    return choices[start:start+5]

print(myfunc(monthes, 4))
print(myfunc(monthes, 0))
print(myfunc(monthes, 1))
0 голосов
/ 22 апреля 2020
# List of months
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
# Get input
index = int(input())

def getMonths(index):
  if index>1 and index<len(months)-2:
    # Return 5 elements in the neighbourhood of the index
    return months[index-2:index] + months[index:index+3]
  elif index<=1 and index>=0: 
    # Return first 5 if index less than 2
    return months[:5]
  elif index>len(months)-2:
    # Return last 5 elements if index greater
    return months[len(months)-5:]
  else:
    # Return -1 for invalid index
    return -1
# Print output
print(getMonths(index))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...