首页 > 解决方案 > 如何通过与 Python 3 中的另一个列表进行比较,从列表中仅弹出一次重复项

问题描述

我正在尝试编写一个纸牌游戏,其中纸牌被分配了数值。

a = [1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3]
b = [1, 2] 

我如何移除b(从牌组中抽出的牌)a以获得:

c = [1, 1, 1, 2, 2, 2, 3, 3, 3, 3]

或者......我如何从一个随机样本中取出a一个单独的列表b

标签: pythonpython-3.xlistrandomsample

解决方案


您可以使用.remove().

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

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)

或者:

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

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)

推荐阅读