Python 在具有可变位置数的表中根据位置分配变量

Python 在具有可变位置数的表中根据位置分配变量,python,Python,我开始学习python,希望我的问题不会太明显,我搜索了一下,但找不到答案。(为了清晰起见,我删去了部分文字) 我有以下案文: 座位1:AAA($103.18)座位2:BBB($97.50)座位3:CCC($22.57)是 经销商座位4:Sitout座位5:DDD(104.74美元) 我能够获得每个座位的名称和号码,并且知道经销商位置=3 我想根据经销商的职位分配职位: SB=DDD BB=AAA Co=BBB=CCC 我的问题是,经销商位置不固定,玩家数量不固定(介于2到10之间),可能会有一

我开始学习python,希望我的问题不会太明显,我搜索了一下,但找不到答案。(为了清晰起见,我删去了部分文字)

我有以下案文:

座位1:AAA($103.18)座位2:BBB($97.50)座位3:CCC($22.57)是 经销商座位4:Sitout座位5:DDD(104.74美元)

我能够获得每个座位的名称和号码,并且知道经销商位置=3

我想根据经销商的职位分配职位:

SB=DDD BB=AAA Co=BBB=CCC

我的问题是,经销商位置不固定,玩家数量不固定(介于2到10之间),可能会有一些间隙(空座位)

以下是我所做的工作(这是一种工作,因为它以正确的顺序为我提供字符串,然后我可以进行匹配),但我非常确定有一种更优雅的方法可以做到这一点

Playerorder = [Seat1Name,Seat2Name,Seat3Name,Seat4Name,Seat5Name,Seat6Name,Seat7Name,Seat8Name,Seat9Name,Seat10Name]
Stacksord = [Seat1Stack,Seat2Stack,Seat3Stack,Seat4Stack,Seat5Stack,Seat6Stack,Seat7Stack,Seat8Stack,Seat9Stack,Seat10Stack]
PositionsPossibles = ["SB","BB","UTG","UTG1","UTG2","UTG3","LJ","HJ","CO","B"]
Positions = PositionsPossibles

#Emptycount count the number of empty seats I am deleteing in the string all #the empty seats, and empty positions
 
for i in range(Emptycount):
    del Positions[2]
       
Playerorder[:] = (value for value in Playerorder if value != "EMPTY")
 
Stacksord[:] = (value for value in Stacksord if value != "EMPTY")

 #then i reorder the relevant string based on button position   
PlayerinOrder =[]
for i in range(NumberOfPlayer):
    PlayerinOrder.append(Playerorder[(i+DealerSeat)%NumberOfPlayer])
print(PlayerinOrder)

StacksinOrder =[]
for i in range(NumberOfPlayer):
    StacksinOrder.append(Stacksord[(i+DealerSeat)%NumberOfPlayer])
print(StacksinOrder)
    

您的示例代码仍然缺少许多可变内容。我无法将其复制/粘贴到脚本以进行测试,因此我将尝试猜测您的出发点和期望结果

我的猜测是,您希望位置包含
['BB'、'CO'、'B'、'SB']
,以便位置代码与播放器顺序匹配
['AAA'、'BBB'、'CCC'、'DDD']

要通过简单的代码实现这一点,您需要一个位置代码列表,该列表的组织方式应确保负索引和正索引的值对应于坐在庄家左右的玩家

下面是一个例子:

DealerSeat = 2
relative   = ["B","SB","HJ","...","BB","CO"] # positions relative to dealer seat
positions  = [relative[i] for i,_ in enumerate(Playerorder,-DealerSeat)]

print(positions)   # ['BB',  'CO',  'B',   'SB']
print(Playerorder) # ['AAA', 'BBB', 'CCC', 'DDD']
相对列表中,索引-1,-2。。。对应于庄家左侧的玩家,索引为0,1,2。。。与经销商本人和右侧玩家对应

如果要在之后旋转列表,使经销商位于零位,可以使用如下下标:

PlayerinOrder = Playerorder[DealerSeat:]   + Playerorder[:DealerSeat]
StacksinOrder = StacksinOrder[DealerSeat:] + StacksinOrder[:DealerSeat]
positions     = positions[DealerSeat:]     + positions[:DealerSeat]

PlayerinOrder    # ['CCC', 'DDD',  'AAA',  'BBB']
StacksinOrder    # [22.57, 104.74, 103.18, 97.5]
positions        # ['B',   'SB',   'BB',   'CO']

ok没有意识到:PlayerOrder[AAA,BBB,CCC,“EMPTY,DDD”,“EMPTY”,“EMPTY”,“EMPTY”,“EMPTY”,“EMPTY”]堆栈顺序[103.18,97.5,22.57,“EMPTY”,104.74,“EMPTY”,“EMPTY”,“EMPTY”,“EMPTY”,“EMPTY”,“EMPTY”,“EMPTY”]基本上最多可以有10个玩家,我们不知道他们将坐在哪个座位上。所以我测试了玩家1到10,以获取数据,并输入“EMPTY”“如果我找不到它。如果球员的数量和位置永远不确定,我会被什么甩了。非常感谢