#python
#python
Вопрос:
Я не уверен, правильно ли я формулирую это, потому что я не очень хорошо знаком с терминами кодирования. Есть ли способ для меня зациклить функцию добавления с разными элементами в списке? по сути, я хочу зациклить этот код, не удаляя оператор return .
def create_party(party,candidates):
suggested_parties = party
suggested_parties.append(candidates[0])
print(suggested_parties)
suggested_parties.pop()
suggested_parties.append(candidates[1])
print(suggested_parties)
suggested_parties.pop()
suggested_parties.append(candidates[2])
return suggested_parties
Вывод должен выглядеть следующим образом:
[a,b,c,d,e,f]
[a,b,c,d,e,g]
[a,b,c,d,e,h]
предполагая, что
party = [a,b,c,d,e]
candidates[0] is f
candidates[1] is g
candidates[2] is h
Ответ №1:
вы можете использовать цикл for следующим образом:
def create_party(party,candidates):
for item in candidates:
print(party list(item))
При этом исходный список печатается вместе со следующим элементом в кандидатах как один список.
Итак, следующее:
party = ["a", "b", "c", "d", "e"]
candidates = ["1", "2", "3"]
def create_party(party, candidates):
for item in candidates:
print(party list(item))
create_party(party, candidates)
С принтами:
['a', 'b', 'c', 'd', 'e', '1']
['a', 'b', 'c', 'd', 'e', '2']
['a', 'b', 'c', 'd', 'e', '3']
Ответ №2:
Используйте for
цикл.
def create_party(party,candidates):
for candidate in candidates[:-1]:
party.append(candidate)
print(party)
party.pop()
party.append(candidates[-1])
return party
Нет необходимости создавать новую переменную suggested_parties
, вы можете использовать ту же party
переменную.
Поскольку вы не хотите печатать возвращаемый список, цикл повторяется по фрагменту candidates
списка, который не включает последний элемент. Затем он добавляет последний элемент и возвращает его.
Комментарии:
1. использование append и pop абсолютно избыточно
2. разве это не создало бы 4 списка, причем 3 и 4 являются одним и тем же списком, поскольку вы возвращаете партию? Мне было интересно, смогу ли я распечатать только 3 списка, не удаляя оператор return.
3. @snatchysquid Я знаю, я просто показывал оператору, как сделать то же самое, что и код в вопросе, но с использованием цикла.
4. @Moyk Это не создает никаких списков.
append()
иpop()
просто измените существующий список.5. @Barmar Я имел в виду, что с помощью оператора return вывод будет выглядеть как [a, b, c, d, e,f] [a,b, c, d, e, g] [a, b, c, d, e, h] [a, b, c, d, e, h] [a, b, c,d, e,h] Причина, по которой я задал эту проблему, заключается в том, что я хотел найти способ зациклить код, не удаляя оператор return . Вот почему в моем исходном коде (том, что в сообщении) есть 2 print и 1 return, чтобы получить вывод, который выглядит следующим образом: [a, b, c, d, e, f] [a, b, c, d, e, g] [a,b, c, d, e, h] Надеюсь, я понимаю смысл.