You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义Python unique()函数循环异常:首次迭代后停止执行问题

问题分析与修复

核心问题

  • 函数内部依赖全局变量l而非传入的参数x,逻辑耦合性强
  • return语句写在外层for循环内部,第一次迭代就直接返回结果,导致后续循环无法执行
  • count变量未在每次外层循环中重置,会累计所有元素的计数,结果错误

修正后的代码

def uni(x):
    # 基于传入的参数创建唯一元素集合,避免依赖全局变量
    unique_items = set(x)
    result = []
    for item in unique_items:
        count = 0  # 每次遍历新元素时重置计数
        for element in x:
            if item == element:
                count += 1
        result.append(f"{item}: {count}")
    # 循环结束后返回所有结果,用换行符拼接成字符串
    return '\n'.join(result)


l = ["business", "business", "business", "economy", "economy", "economy", "economy", "business", "premium", "business", "first"]
xx = uni(l)
print(xx)

输出结果

business: 5
economy: 4
first: 1
premium: 1

额外优化思路

如果只是统计列表元素的出现次数,Python内置的collections.Counter可以更简洁实现:

from collections import Counter

l = ["business", "business", "business", "economy", "economy", "economy", "economy", "business", "premium", "business", "first"]
counts = Counter(l)
for item, num in counts.items():
    print(f"{item}: {num}")

内容的提问来源于stack exchange,提问作者Raakin Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 20:20:55