Как я могу заставить python распечатать только одну копию списка нелегальных государств?Кажется, он перечисляется слишком долго, когда все, что мне нужно, это одна копия.
import itertools
import copy
BOAT = "B"
def illegalStates(roles):
allstates = []
legalstates = []
illegalstates = []
husbands = []
wifes = []
sisalto = []
persons = copy.deepcopy(roles)
persons.remove(BOAT)
for i in range(1, len(persons)+1):
els = [list(x) for x in itertools.combinations(persons, i)]
allstates.extend(els)
allstates.append([])
for state in allstates:
husbands.append([])
wifes.append([])
for henkilo in state:
if henkilo == "H1":
husbands[len(sisalto)-1].append(1)
elif henkilo == "H2":
husbands[len(sisalto)-1].append(2)
elif henkilo == "H3":
husbands[len(sisalto)-1].append(3)
elif henkilo == "W1":
wifes[len(sisalto)-1].append(1)
elif henkilo == "W2":
wifes[len(sisalto)-1].append(2)
elif henkilo == "W3":
wifes[len(sisalto)-1].append(3)
for i in range(0, len(husbands)):
if len(husbands[i]) == 0 or len(wifes[i]) == 0:
legalstates.append(allstates[i])
print(*legalstates)
#--------------------------------
return illegalstates
if __name__ == "__main__":
main()
Вот весь код, на случай, если это какая-то другая часть кода, которая продолжает делать это.Кроме того, когда этот список печатается, он не печатает пустые слоты.Может ли это быть напечатано как-то?