Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python 3中的列表值(ValueError)存在问题_Python_Python 3.x_List_If Statement - Fatal编程技术网

python 3中的列表值(ValueError)存在问题

python 3中的列表值(ValueError)存在问题,python,python-3.x,list,if-statement,Python,Python 3.x,List,If Statement,我正在尝试为学校创建一个简单的纸牌游戏,我正在编写游戏如何在游戏中运行,并且在尝试从列表中删除值时遇到一个值错误 我已经尝试更改我的列表.remove(x)语法,到目前为止,我已经尝试了list.remove(list[x]),list.remove([x])和list.remove(x),但所有这些都返回了一个ValueError import random,time#导入代码所需的模块 cardDeck=[] player1=[] player1CardsWon=[] player2=[]

我正在尝试为学校创建一个简单的纸牌游戏,我正在编写游戏如何在游戏中运行,并且在尝试从列表中删除值时遇到一个值错误

我已经尝试更改我的
列表.remove(x)
语法,到目前为止,我已经尝试了
list.remove(list[x])
list.remove([x])
list.remove(x)
,但所有这些都返回了一个ValueError

import random,time#导入代码所需的模块
cardDeck=[]
player1=[]
player1CardsWon=[]
player2=[]
player2CardsWon=[]#所有这些列表/数组在代码后面都需要
def deckCreator():#在cardDeck 2D数组中创建所有需要的嵌入列表
对于[“黄色”、“红色”、“黑色”]中的颜色:
对于[1,2,3,4,5,6,7,8,9,10]中的数字:
cardDeck.append([颜色,编号])
''测试1-检查deckCreator功能是否工作
deckCreator()
打印(卡片组)
'''
def deckShuffle():#洗牌cardDeck 2D数组
随机洗牌(卡片组)
''测试2-检查deckShuffle功能是否工作
deckCreator()
打印(卡片组)
洗牌
打印(卡片组)
'''
def gamePlay():#玩一轮游戏
而len(cardDeck)>0:
时间。睡眠(2)
player1=cardDeck.pop(0)
player2=cardDeck.pop(0)
打印(“玩家1持牌”,玩家1[0],玩家1[1],“本轮”)
打印(“玩家2持有卡片”,玩家2[0],玩家2[1],“本轮”)
如果player1[0]=“黄色”:
如果player2[0]=“红色”:#黄色战胜红色
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家1获胜!”)
elif player2[0]=“黑色”:#黑色战胜黄色
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家2获胜!”)
elif player2[0]=“黄色”:
如果player1[1]>player2[1]:
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家1获胜!”)
其他:
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家2获胜!”)
如果player1[0]=“红色”:
如果player2[0]=“红色”:
如果player1[1]>player2[1]:
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家1获胜!”)
其他:
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家2获胜!”)
elif player2[0]=“黑色”:#红色战胜黑色
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家1获胜!”)
elif player2[0]=“黄色”:#黄色战胜黑色
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家2获胜!”)
如果player1[0]=“黑色”:
如果player2[0]=“红色”:#红色战胜黑色
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家2获胜!”)
elif player2[0]=“黑色”:
如果player1[1]>player2[1]:
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家1获胜!”)
其他:
player2CardsWon.append(player1)
player2CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家2获胜!”)
elif player2[0]=“黄色”:#黑色战胜黄色
player1CardsWon.append(player1)
player1CardsWon.append(player2)
player1.移除(0)
播放器1.卸下(1)
player2.移除(0)
播放器2.拆下(1)
打印(“玩家1获胜!”)
''测试3-检查游戏功能是否正常工作
deckCreator()
打印(卡片组)
洗牌
打印(卡片组)
tempHold1=cardDeck.pop(0)
tempHold2=cardDeck.pop(0)
player1.append(临时保持1)
player2.append(tempHold2)
游戏性()
'''
deckCreator()
洗牌
游戏性()
我希望控制台能够输出:

Player 1 holds card red 9 for this round
Player 2 holds card black 8 for this round
Player 1 wins!
但它目前正在输出:

Player 1 holds card red 9 for this round
Player 2 holds card black 8 for this round
Traceback (most recent call last):
  File "/tmp/sessions/99a7da0a0b9fd10f/main.py", line 152, in <module>
    gamePlay()
  File "/tmp/sessions/99a7da0a0b9fd10f/main.py", line 92, in gamePlay
    player1.remove(0)
ValueError: list.remove(x): x not in list
玩家1持有这一轮的红牌9
玩家2持有这一轮的黑8牌
回溯(最近一次呼叫最后一次):
文件“/tmp/sessions/99a7da0a0b9fd10f/main.py”,第152行,在
游戏性()
文件“/tmp/sessions/99a7da0a0b9fd10f/main.py”,第92行,游戏中
player1.移除(0)
ValueError:list。删除(x):x不在列表中

(编辑-这是从朋友的帐户发布的,我不拥有该帐户)

你的问题在于你的使用方式。当您需要传递元素本身时,您正在使用索引作为remove的参数

例如:

lst = [1,'yellow']
# If you want to remove yellow call
lst.remove('yellow')
# and not
lst.remove(1)
# If you want to remove 1 call
lst.remove(1)
# and not
lst.remove(0)
从列表中删除值为
x
元素(使用相等匹配查找要删除的内容)

list.remove
每当列表中不存在要删除的内容时,就会抛出
ValueError

您正在创建一个列表列表。每个元素都是
[颜色]
list.remove(x)