如何从random.choi未选择的列表中删除项目

2024-06-02 19:09:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让这个脚本从“复仇者”和“维利亚人”列表中随机选择一个值。我已经这样做了,我已经选择了一个随机值之间的那些被视为赢家。我要做的是让胜利者留在名单上,而失败者从名单上删除。(例如:如果“selectedAvenger”获胜,“selectedVillian”将从“villians”列表中删除,反之亦然。(编程类小项目)

import random # imports the random module

avengers = ['Thor', 'Iron Man', 'Spiderman', 'Hulk', 'Falcon', 'Black Widow', 'Antman', 'Captain America']
verb = ['smashed', 'kicked', 'slapped', 'bonked']
villian = []
# these are the lists that the script will use

for i in range(8):
    villian.append(input('Enter villian number ' + str(i + 1))) # asks user to list 8 villians

print('Welcome to Avengers: End of Line!') # welcomes the user
input('Press "Enter" to continue.') # asks the user to press the enter key to continue the script

selectedAvenger = random.choice(avengers) # selects a random avenger
selectedVillian = random.choice(villian) # selects a random villian
selectedVerb = random.choice(verb) # selects a random verb

winner = random.choice([selectedAvenger, selectedVillian])


print(winner)

Tags: theto列表scriptrandomselectsverbchoice
2条回答
import random # imports the random module

avengers = ['Thor', 'Iron Man', 'Spiderman', 'Hulk', 'Falcon', 'Black Widow', 'Antman', 'Captain America']
verb = ['smashed', 'kicked', 'slapped', 'bonked']
villian = []
# these are the lists that the script will use

for i in range(8):
    villian.append(input('Enter villian number ' + str(i + 1))) # asks user to list 8 villians

print('Welcome to Avengers: End of Line!') # welcomes the user
input('Press "Enter" to continue.') # asks the user to press the enter key to continue the script

selectedAvenger = random.choice(avengers) # selects a random avenger
selectedVillian = random.choice(villian) # selects a random villian
selectedVerb = random.choice(verb) # selects a random verb

print([selectedAvenger, selectedVillian])
listPossibleChoice = [selectedAvenger, selectedVillian]

winner = random.choice([selectedAvenger, selectedVillian])
print(winner)

heroOrVillain = listPossibleChoice.index(winner) #if the index is 0, we delete from avengers, if it is 1, we delete from villains.
print(heroOrVillain)

if (heroOrVillain==0):
    avengers.remove(selectedAvenger)
    print(avengers)

else:
    villian.remove(selectedVillian)
    print(villian)

我相信这会打印出你想要的结果。以下是我的控制台中的输出:

console

我假设你有一个恶棍的名单?我想我可能没有正确地理解你的问题,但这是我理解的解决办法。你知道吗

if winner == selectedAvenger:
    villian.remove(selectedVillian)
else:
    avengers.removed(selectedAvenger)

相关问题 更多 >