Python 如何从列表中删除项目并将其分配给变量?

Python 如何从列表中删除项目并将其分配给变量?,python,list,Python,List,如果您感兴趣,我有一些python方面的经验,但我已经有几年没有接触过它了——我主要使用basic,但我希望更多地了解python 我正在尝试编写一个基于纸牌的游戏,其中列表(纸牌组)中的物品将分发给玩家。我知道这通常是不好的做法,但我为每个玩家创建了5个“卡槽”,我试图将卡从列表底部(牌组)移到这个槽中,这将使游戏的其余部分更易于编程 #import and shuffle cards with open("deck.txt") as f: cards = f.readline

如果您感兴趣,我有一些python方面的经验,但我已经有几年没有接触过它了——我主要使用basic,但我希望更多地了解python

我正在尝试编写一个基于纸牌的游戏,其中列表(纸牌组)中的物品将分发给玩家。我知道这通常是不好的做法,但我为每个玩家创建了5个“卡槽”,我试图将卡从列表底部(牌组)移到这个槽中,这将使游戏的其余部分更易于编程

#import and shuffle cards
with open("deck.txt") as f:
        cards = f.readlines()

random.shuffle(cards)

#move bottom card to first slot (p1c1 stands for person 1 card 1)

p1c1 = cards(0)
cards.remove(a[0])
我得到了这条错误线

Traceback (most recent call last):
  File "C:/Users/harry/OneDrive/Documents/python/21.py", line 41, in <module>
    p1c1 = int(cards(0))
TypeError: 'list' object is not callable
回溯(最近一次呼叫最后一次):
文件“C:/Users/harry/OneDrive/Documents/python/21.py”,第41行,在
p1c1=int(卡片(0))
TypeError:“列表”对象不可调用

简易方法-一次完成分配并删除所有项目

p1c1 = cards.pop(0)

&注释是正确的,为列表编制索引需要使用方括号。

函数(请参阅)获取索引,并在返回该项目时将其删除

p1c1 = cards.pop(0)
还要注意的是,要访问列表中的某个项目,您需要使用方括号——下面是您现在的工作方法:

p1c1 = cards[0]
cards.remove(a[0])

你可能是指
卡片[0]
而不是
卡片(0)
?干杯,这很有效!是否有一个使用方括号的简单规则,或者我只需要了解每个案例。有点让人困惑的是,pop在移除和分配时不需要它们。嗨@Imperdius。我知道这可能会让人困惑。在您更加熟悉Python之后,它会更加清晰。调用函数和方法(如
readlines
pop
)时,其参数在括号中。像
卡片
这样的列表使用方括号编制索引,以指示要选择的元素(在Python文档中查找“切片”以了解有关该元素的所有详细信息)。像
卡这样的列表
也可以有像
pop
这样的方法,这些方法可以对列表进行操作。我认为如果您阅读一些关于Python中列表的文档,就会更清楚。