我有一个问题,要将多个列表值分为一个值。例如,我有此列表
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)]
答案 0 :(得分:1)
尝试使用此代码
explicit
您还可以使用OrderedDict按顺序打印它
mylist = ["a", "b", "a", "c", "c"]
mylist = list(dict.fromkeys(mylist))
print(mylist)
答案 1 :(得分:1)
一个好主意是使用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更改为包含唯一值的列表
答案 2 :(得分:1)
方法1 -
您还可以使用numpy
获得唯一值:-
import numpy as np
data_list = np.array(['A','A','B','B','B','C','C','C','C'])
np.unique(data_list)
方法2
您可以使用set
获取唯一值,但是在set
中结果将不包含相同的顺序。
new_list = list( set(data_list) )
new_list
希望对您有帮助。
答案 3 :(得分:1)
只需将您已经找到的itertools.groupby
解决方案改编为仅使用key
:
>>> data_list = [A, A, B, B, B, C, C, C, C] # with A, B, C = "ABC"
>>> [(key, len(list(group))) for key, group in groupby(data_list)]
[('A', 2), ('B', 3), ('C', 4)]
>>> [key for key, group in groupby(data_list)]
['A', 'B', 'C']
答案 4 :(得分:0)
您是否尝试过研究集合?
您可以先使用this.columnDefs = [
{
headerName: this.pageData["tbm.line.list.grid.phonenumber"],
field: 'tn',
/*sort: "asc",*/
sortable: true,
filter: "agTextColumnFilter",
filterParams: { filterOptions: ['contains'], apply: true },
//tooltip: (params) => 'Address: ' + params.value,
headerTooltip: 'Phone Number',
// editable: true,
// checkboxSelection: true,
// headerCheckboxSelection: true,
// headerCheckboxSelectionFilteredOnly: true,
width: 150
},
将原始data_list
投射到集合中,然后再次将其投射到列表中。
set(data_list)
集合的作用是它们仅包含唯一值。因此,为什么我们在您的data_list = [A,A,B,B,B,C,C,C,C]
print(list(set(data_list)))
#OUTPUT:
['A', 'B', 'C']
变量上运行set()
函数时,只剩下唯一的值。 python中的集合以“花括号”表示,就像字典中的data_list
一样,但是集合不包含key:value对。 { }
函数将您的集合转换为列表,以便将来将其视为列表。