日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python如果选择不在列表里_Python-list.remove(x)x不在列表中

發布時間:2023/12/2 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python如果选择不在列表里_Python-list.remove(x)x不在列表中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我正在嘗試在Python 3.3中創建一個簡單的程序,該程序采用四個名稱的列表,并將它們隨機分配給列表中的另一個人.例如,如果名稱是John,Aaron,Lydia和Robin:

約翰先走,然后選擇一個名字.他不能畫自己的東西.如果他這樣做,他會把它放回去并再次抽簽.說約翰畫了羅賓的名字.羅賓的名字將從游泳池中淘汰.接下來是亞倫的抽獎.他畫約翰.約翰的名字被淘汰了.等等,直到分配了所有名稱.

我創建了一個具有四個名稱的列表,并為每個名稱分配了一個值1-4.但是,從列表中刪除時我遇到了一個問題,說該值不存在.

list.remove(x):x不在列表中.

它看起來像這樣:

def drawNames():

import random

John=1

Aaron=2

Lydia=3

Robin=4

validNames=[John, Aaron, Lydia, Robin]

nameDrawn=random.choice(validNames)

def draw():

nameDrawn=random.choice(validNames)

#John's Draw:

draw()

if nameDrawn != 1:

if nameDrawn == 2:

print("John drew: Aaron")

validNames.remove(2)

elif nameDrawn == 3:

print("John drew: Lydia")

validNames.remove(3)

elif nameDrawn == 4:

print("John drew: Robin")

validNames.remove(4)

#Aaron's Draw:

draw()

if nameDrawn !=2:

if nameDrawn ==1:

print("Aaron drew: John")

validNames.remove(1)

elif nameDrawn ==3:

print("Aaron drew: Lydia")

validNames.remove(3)

elif nameDrawn ==4:

print("Aaron drew: Robin")

validNames.remove(4)

#Lydia's Draw:

draw()

if nameDrawn !=3:

if nameDrawn ==1:

print("Lydia drew: John")

validNames.remove(1)

elif nameDrawn ==2:

print("Lydia drew: Aaron")

validNames.remove(2)

elif nameDrawn ==4:

print("Lydia drew: Robin")

validNames.remove(4)

#Robin's Draw:

draw()

if nameDrawn !=4:

if nameDrawn ==1:

print("Robin drew: John")

validNames.remove(1)

elif nameDrawn ==2:

print("Robin drew: Aaron")

validNames.remove(2)

elif nameDrawn ==3:

print("Robin drew: Lydia")

validNames.remove(3)

drawNames()

我也嘗試過使用名稱而不是數字值,這會產生相同的錯誤.

我也覺得這是一個低效的方案.如果您有更好的建議,我將非常有義務.

解決方法:

使用下面的代碼,可能會獲得更好的里程;與上面提供的名稱相比,它可以擴展到許多名稱.

import copy

import random

validNames=["John", "Aaron", "Lydia", "Robin"]

def drawNames(namelist,currentname):

'''

namelist: list of names to draw from

currentname: name of person doing the current draw

'''

draw_namelist = copy.copy(namelist) # make a copy to remove person drawing if needed

if currentname in draw_namelist: # check if the person drawing is in the list

draw_namelist.remove(currentname) # remove current name if in list

try:

drawn_name = random.choice(draw_namelist)

namelist.remove(drawn_name)

newnamelist = namelist

print "Drew {}".format(drawn_name)

print "New list: {}".format(newnamelist)

except:

print "Nobody for me to draw!"

drawn_name=None

newnamelist = namelist

return drawn_name, newnamelist

然后可以按以下方式工作:

In [39]: newlist=["John", "Aaron", "Lydia", "Robin"]

In [40]: name,newlist = drawNames(newlist,"Lydia")

Drew Robin

New list: ['John', 'Aaron', 'Lydia']

In [41]: name,newlist = drawNames(newlist,"John")

Drew Aaron

New list: ['John', 'Lydia']

In [42]: name,newlist = drawNames(newlist,"Aaron")

Drew John

New list: ['Lydia']

In [43]: name,newlist = drawNames(newlist,"Robin")

Drew Lydia

New list: []

標簽:python-3-x,list,scripting,python

來源: https://codeday.me/bug/20191122/2059453.html

總結

以上是生活随笔為你收集整理的python如果选择不在列表里_Python-list.remove(x)x不在列表中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。