Bir kod oluşturmak için bir görev verilmiş. olduğupython 2.7'deki bir listeden her elemanın silinmesi
You are the captain of a sailing vessel and you and your crew have been captured by pirates. The pirate captain has all of you standing in a circle on the deck of his ship trying to decide in which order you should walk the plank. Eventually he decides on the following method:
(a) The pirate captain asks you to pick a number N.
(b) The first person to walk the plank will be the Nth person (starting from you).
(c) The captain will then continue around the circle forcing every Nth person to walk the plank.
(d) Once there is only one person left, that person will be given freedom.
For example: The crew consists of: Andrew, Brenda, Craig, Deidre, Edward, Felicity, Greg and Harriet. Andrew selects N=2. The crew will walk the plank in the order: Brenda, Deidre, Felicity, Harriet, Craig, Greg, Edward. Andrew will be given freedom.
i şimdiye kadar var kodu:: Görev aşağıdaki gibidir Bu listeden ilk n'inci kişiyi kaldıracak
def survivor(names, step):
names = ["Andrew", "Brenda", "Craig", "Deidre", "Edward", "Felicity", "Greg", "Harriet"]
Next = step - 1
names.pop(Next)
print names
ama emin değilim nasıl listesinde döngü için kişi çıkarmaya devam etmek.
İhtiyacım olan adım 3'ü kabul etmem gerekiyor, o zaman craig'i gidermek için ihtiyacım var ve daha sonra craig'den itibaren sayın ve felsefi olan bir sonraki 3. elementi ve bir kişi kalmayıncaya kadar çıkarın.
Bunu nasıl yapabilirim?
kimse bana yardımcı olabilir ????????/ – user1839493
Yani bir seçim yapan kişi her zaman listedeki ilk mi? –
İlk bölüm için kendi kodumu kullandım: sonraki = adım - 1, len (isimler)> 1: names.pop (Next) Next = Next + step Next = (Next - 1)% len (names) baskı isimleri geri dönmek için çalışır [0] isimleri geri dönmek için çalışır ama ben önerdim ikinci bölümü uygulamak çalıştığınızda aswell \t bunu kullanmayı denedim: hayatta kalan adım için isimlerde isim (isim, adım)): hayatta kalmak == isim: ama işe yaramazsa UnboundLocalError diyor: atama geri dönüş adımı – user1839493