我有一个庞大的列表列表,这是它的一部分:
[['cusA', 'zupT', 'rcnA', 'cusA', 'zupT', 'zupT']]
我在整个列表列表上执行了以下操作:
[list(x) for x in set(tuple(x) for x in my_list)]
因为我希望在子列表中有唯一的信息。这返回了以下内容:
[['c', 'u', 's', 'A'], ['r', 'c', 'n', 'A'], ['z', 'u', 'p', 'T']]
这是伟大的,因为它确实变得独一无二,但现在我需要它们来自它们的原始,而不是逐个字符地分解。
有没有办法在子列表中重新加入它们?
答案 0 :(得分:1)
而不是list(x)
,请使用''.join(x)
。
但你可以把字符串本身放在一个集合而不是调用元组:list(set(my_list))
。
答案 1 :(得分:1)
正如您已经提到的:您可以join
字符串:
print(''.join(['c', 'u', 's', 'A'])) # cusA
对于您的整个列表,您可以这样做:
lst = [['c', 'u', 's', 'A'], ['r', 'c', 'n', 'A'], ['z', 'u', 'p', 'T']]
str_lst = [''.join(item) for item in lst]
print(str_lst) # ['cusA', 'rcnA', 'zupT']
请注意,创建单个字符列表没有意义;字符串本身的行为与字符列表完全相同(但是不可变的字符串);所以你可以直接做到这一点:
print(set(['cusA', 'zupT', 'rcnA', 'cusA', 'zupT', 'zupT']))
# {'zupT', 'cusA', 'rcnA'}
# if you need a list again instead of a set:
print(list(set(['cusA', 'zupT', 'rcnA', 'cusA', 'zupT', 'zupT'])))
# ['zupT', 'cusA', 'rcnA']
虽然不会保留订单......
答案 2 :(得分:1)
如果内部列表的内容顺序无关紧要,您可以将它们转换为一个集合,这是一个无序的唯一元素集合,然后将该集合转回一个列表:
result = [list(set(li)) for li in my_list]
打印:
[['cusA', 'rcnA', 'zupT']]