如何统计指定数据列中各二元配对元素的出现次数
配对元素频次统计实现
直接用Python的collections.Counter可以快速实现需求,示例代码如下:
from collections import Counter # 按你的实际数据源替换此处的输入行 input_lines = [ "('a', 'b'),('a', 'c'),('b', 'c')", "('g', 'h'),('a', 'c'),('a', 'b')" ] pair_list = [] for line in input_lines: # 将行字符串转换为元组列表后合并到总列表 pair_list.extend(eval(f"[{line}]")) # 统计频次 count_res = Counter(pair_list) # 按要求格式输出 print("Output:") for pair, count in count_res.items(): print(f"{pair} {count}")
运行后输出结果与你预期完全一致:
Output: ('a', 'b') 2 ('a', 'c') 2 ('b', 'c') 1 ('g', 'h') 1
如果担心eval的安全风险,可以用正则匹配提取所有元组:
import re from collections import Counter input_lines = [ "('a', 'b'),('a', 'c'),('b', 'c')", "('g', 'h'),('a', 'c'),('a', 'b')" ] pair_pattern = re.compile(r"\('\w', '\w'\)") pair_list = [] for line in input_lines: pair_list.extend(pair_pattern.findall(line)) count_res = Counter(pair_list) # 输出格式同上即可
内容的提问来源于stack exchange,提问作者Naghmeh Shahverdi
相关产品推荐
相关产品推荐

