python - 如何通过与 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
?
解决方案
您可以使用.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)
推荐阅读
- http - 将 docker 容器端口绑定到路径
- c# - c# textbox与mysql表交互
- php - PHP查找和删除大文本文件中的特定行集
- javascript - 将 rest args 传递给下一个 func 和 args 现在不同了
- java - BottomNavigationViewHelper 无法解析方法'setShiftingMode(boolean)'
- php - 我们如何使用 PHP 检查设备的互联网连接强度
- swift - 在代码中复制通过场景工具包编辑器创建的物理体
- sql-server - 在 SQL Server 中为只读访问删除和创建相同登录帐户的问题
- macos - 错误:tcpip::Socket::recvAndCheck @recv: peer shutdown
- ruby-on-rails - rails中没有路由匹配?自定义rails中控制器的操作权限