python - 将相同的列表值分组为一个列表值
问题描述
我有一个将多个列表值分组为一个值的问题。例如我有这个列表
data_list = [A,A,B,B,B,C,C,C,C]
然后我想把它变成这个
data_list = [A, B, C]
我已经尝试使用itertools.groupby
但我仍然找不到我的解决方案
from itertools import groupby
data_list = [A,A,B,B,B,C,C,C,C]
data_group = [(key, len(list(group))) for key, group in groupby(data_list)]
print(data_group)
预期的输出是data_group = [A, B, C]
实际结果是data_group = [(A, 2), (B, 3), (C, 4)]
解决方案
一个好主意是使用 python 集。根据文档,描述的一部分是:
“集合是没有重复元素的无序集合。基本用途包括成员资格测试和消除重复条目。”
例如:
my_list = [1,1,2,2,3,3]
my_set = set(my_list)
print(my_set)
type(my_set)
将输出:
{1,2,3}
set
请注意,生成的数据类型是set
因此,如果您希望结果是列表,可以将其转换回一个:
unique_values = list(set(my_list))
如果您打算在代码中大量使用它,那么一个函数会有所帮助:
def giveUnique(x):
return list(set(x))
my_list = giveUnique(my_list)
这将使用包含唯一值的列表更改 my_list
推荐阅读
- jdbc - Kafka Connect JDBC Sink - 一个接收器配置中每个主题(表)的 pk.fields
- html - 监视 Web 应用程序 - 路径属性中的通配符不起作用
- javascript - 在 wordpress 中加载 html 和 js 文件
- laravel - laravel 密钥不存在或问题不可读
- bash - 通过 ssh 远程框的 grep 命令
- sockets - Linux 套接字:为什么即使通过 802.11 传输以太网 MTU 也是一个限制?
- typescript - 如何调用不具有 TS 中具有默认值的参数的所有属性的函数?
- apache-kafka - kafka-acls.sh 没有提供一种方法来使用前缀作为主题和文字或全部用于组,同时给予消费者权限
- python - 使用 Python 编写 HTML 格式的电子邮件
- c# - 进入登录表单 ASP.Net 后底部登录