我正在使用骰子辊使用python取消模子。我已经创建了模具卷并将它们存储在列表中。 0
是第一组骰子,1
是第二组骰子。
{0: [4,2,3,2], 1: [2,3,6]}
python脚本在两个列表中找到每个唯一编号的第一个匹配编号,然后将其从列表中删除。
结果后:
{0: [4,2], 1: [6]}
我似乎找不到正确的方法来实现这一目标。我已经研究了itertools
和find_first
,但我想不出一种使之起作用的方法。
有人有什么秘诀吗?
答案 0 :(得分:2)
尝试一下:
dct = {0: [4, 2, 3, 2], 1: [2, 3, 6]}
new_dct = dct[0].copy()
for i in new_dct:
if i in dct[1]:
dct[0].remove(i)
dct[1].remove(i)
print(dct)
更新:
如果需要,您可以更改
new_dct = dct[0].copy()
for i in new_dct:
到
for i in dct[0][:]:
答案 1 :(得分:0)
我认为这会对您有所帮助
l0_ = [4,2,3,2]
l0 = list(l0_) # this is needed to make a deep copy of l0_
l1 = [2,3,6]
for i in l0_:
if i in l1:
l0.remove(i)
l1.remove(i)
res = {0:l0, 1:l1}
res
如果您不想考虑重复,可以先将列表转换为集合。