Что эти функции делают в этом списке? - PullRequest
0 голосов
/ 12 июля 2020

Базовая программа c, которая намеревается создать новый список, содержащий элементы list2. За которыми следуют элементы list1 в обратном порядке, я не могу понять, что означает прокомментированная строка.

 def combine_lists(list1, list2):
      new_list = list2
      for i in reversed(range(len(list1))):   #this one
        new_list.append(list1[i])
      return new_list
    
    Jamies_list = ["Alice", "Cindy", "Bobby", "Jan", "Peter"]
    Drews_list = ["Mike", "Carol", "Greg", "Marcia"]

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Я изменил комментарии, чтобы сделать их читабельными:

def combie_lists(list1, list2):
      new_list = list2  #define a new list with the elements of list 2
      for i in reversed(range(len(list1))): #takes the numbers 0,1,2,3,... to len(list1) in reverse
        new_list.append(list1[i]) #add the element in list1 with the corresponding index
      return new_list #return the new list

Кстати, вы можете сделать это вот так:

combie_lists= lambda l1,l2:return l2+l1[::-1]
0 голосов
/ 14 июля 2020

Разбивка строки:

for i in reversed(range(len(list1)))

Предположим, что list1 = [1, 2, 3].

Затем len(list1) = 3 и range сгенерируют числа от 0 до 2.

reversed переворачивает порядок в числа 2, 1, 0, и чтобы вывести их из объекта range_iterator, вам нужно перебрать его, что и является тем, что for-l oop делает:

for i in reversed(range(len(list1))):
    print(i)

Результаты в:

2
1
0
...