首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过与Python 3中的另一个列表进行比较,只从列表中弹出一次复制

如何通过与Python 3中的另一个列表进行比较,只从列表中弹出一次复制
EN

Stack Overflow用户
提问于 2021-07-27 18:10:12
回答 3查看 44关注 0票数 0

我正在尝试写一个纸牌游戏,其中的卡片被分配数字值。

代码语言:javascript
运行
AI代码解释
复制
a = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
b = [1, 2] 

如何将b (从一张牌中提取的卡片)从a中移除以获得:

代码语言:javascript
运行
AI代码解释
复制
c = [1, 1, 1, 2, 2, 2, 3, 3, 3, 3]

或者..。如何从a中随机抽取一个样本,以生成一个单独的列表b

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-07-27 18:14:40

random.sample(a, n)会给出一个样本,其中n是您想要的样本大小:

代码语言:javascript
运行
AI代码解释
复制
>>> a = [1,1,1,1,2,2,2,2,3,3,3,3]
>>> random.sample(a, 5)
[2, 1, 3, 2, 2]

或者,您可以从一开始就使用random.shuffle(a)并绘制n卡:

代码语言:javascript
运行
AI代码解释
复制
>>> random.shuffle(a)
>>> a
[2, 1, 2, 2, 1, 1, 1, 3, 2, 3, 3, 3]
>>> a[:5]
[2, 1, 2, 2, 1]
票数 0
EN

Stack Overflow用户

发布于 2021-07-27 18:14:28

您可以使用.remove()

remove() -删除第一次出现的值。如果不存在值,则引发ValueError

代码语言:javascript
运行
AI代码解释
复制
a = [1,1,1,1,2,2,2,2,3,3,3,3]
b = [1,2] 
a.remove(b[0])
a.remove(b[1])
print(a)

或者:

代码语言:javascript
运行
AI代码解释
复制
a = [1,1,1,1,2,2,2,2,3,3,3,3]
b = [1,2] 
for i in b:
    a.remove(i)
print(a)

如果需要单独的列表,可以创建列表a的副本。

代码语言:javascript
运行
AI代码解释
复制
a = [1,1,1,1,2,2,2,2,3,3,3,3]
b = [1,2] 
c=a.copy()
for i in b:
    c.remove(i)
print(c)
票数 0
EN

Stack Overflow用户

发布于 2021-07-27 18:46:46

代码语言:javascript
运行
AI代码解释
复制
import random

Deck_lst = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
Deck_lst_sequence = [i for i, v in enumerate(Deck_lst)]
Draw_cards_index = random.sample(Deck_lst_sequence, 2)
Draw_cards_value = []
for Draw_card in Draw_cards_index:
    Draw_cards_value.append(Deck_lst[Draw_card])
    Deck_lst.remove(Deck_lst[Draw_card])


print(Deck_lst)
print(Draw_cards_value)
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68553554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档