首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >老处女纸牌游戏

老处女纸牌游戏
EN

Stack Overflow用户
提问于 2016-10-29 16:44:54
回答 1查看 739关注 0票数 0

我正在试着写一个古老的女佣卡游戏。现在我到了删除对的阶段,所以如果有相同的数字(2-10)和相同的字母(AKQJ),请将它们都删除。我已经写了几行代码,但它不能工作。你能告诉我原因并帮我解决吗?

如何识别具有不同套装的相同号码,并在同一列表中删除这两个号码?

代码语言:javascript
复制
def x(alist):
    n = '2345678910AKJQ'
    a=[]
    b=[]
    for i in alist:
      j = ''.join([k for k in i if k in n])
      if not j in b:
        a.append(i)
        b.append(j)
    return a
EN

回答 1

Stack Overflow用户

发布于 2016-10-29 16:50:12

创建一个默认字典,创建一个列表,根据最后一个字符拆分条目(我使用的是标准字母,而不是符号),并使用键组成一个只有1个值的listcomp。

代码语言:javascript
复制
import re
from collections import defaultdict

deck = ['10H','AS','AH','4C','4S','5D']


dd = defaultdict(list)

for d in deck:
   dd[d[:-1]].append(d[-1])

print([k for k,v in dd.items() if len(v)==1])

结果:

代码语言:javascript
复制
['5', '10']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40317446

复制
相关文章

相似问题

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