我有两套:set1和set2。我能够在终端中以绿色打印set1项目,以便在打印输出差异时,很容易识别哪个项目来自哪个集合,但在以绿色打印set1项目差异时出错。 我正在使用python 3.4.4
2套:
set1 = {'Amy', 'Jacob'}
set2 = {'Jacob', 'Serp'}
print(list(set1 ^ set2)) #printing the differences between two sets in below output. Using list because there will may sets and all the differences will be in list
['Amy', 'Serp']
我已经尝试使用termcolor,它能够以绿色打印set1的项目
from termcolor import colored
set1 =colored(set(x[key1]), 'green')
但当它使用下面的代码打印差异时
set1 =colored(set(x[key1]), 'green')
set2 = {'Jacob', 'Serp'}
print(list(set1 ^ set2))
下面的错误即将出现,所以我无法在输出中以绿色打印set1的项目,这是两组之间的差异
Traceback (most recent call last):
File "main.py", line 43, in <module>
print((set1 ^ set2))
TypeError: unsupported operand type(s) for ^: 'str' and 'set'
预期输出如下,Amy应以绿色书写
['Amy', 'Serp']
问题是,当您对集合进行如下着色时:
输出:
正如您所看到的,该集合被铸造为一个彩色的字符串,并且您使用字符串来区分集合,所以这就是错误的原因。 另一种方法是更改集合中的每个元素,但这不起作用,因为当您为字符串着色时,会添加一些字符以提供该颜色,如下图所示,因此当您执行此操作时,它将输出两个串联的集合:
输出:
您可以尝试的方法是获取差异,如果差异的某个元素在
set1
中,请将其涂成绿色,然后将它们连接到一个字符串中以对打印进行着色:输出:
相关问题 更多 >
编程相关推荐