python - 匹配列表中的第一项和最后一项

标签 python

我的目标是遍历一个名称列表,并且仅当名称的最后一个字母与下一个名称的第一个字母相同时才返回 True。

class Team(object):
    def __init__(self, names):
        self.names = names

    def __iter__(self):
        from collections import Counter
        first = Counter(map(lambda n: n[0].lower(), self.names))
        last = Counter(map(lambda n: n[-1].lower(), self.names))
        diff = last - first
        return any(diff.values()) <= 1

def isCoolTeam(team):
    return bool(Team(team))

print(isCoolTeam(["Rob", 
 "Bobby", 
 "Billy"]))

它应该返回 False,但由于某种原因每个输入都返回 true。

最佳答案

函数 any() 返回 boolean ( True/False ) 和所有 booleans 小于等于 ( <= ) 1 .

这意味着 line :

return any(diff.values()) <= 1

总是评估为True .

关于python - 匹配列表中的第一项和最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46897305/

相关文章:

python - 有没有办法验证从源代码构建的 Python 解释器是否正确?

python - GeoDjango 图层映射和外键

python - 我无法使用 Homebrew 软件安装 python,因为没有可用的瓶子

python - Date 类 - 计算调用它的 Date 对象的星期几的方法

python - Django重复数据库查询

Python 正则表达式 在单词前停止

python - 在Python中,如何获取文件的content_type或mime_type?

python - Django 下载模板中的文件 Url

python - 图像配准 B 样条 opencv

python - 使用 python 和 pyspark 连接到 jupyterhub 笔记本中的 Snowflake