我想要删除positive
和negative
中出现的重复字词。这是我使用的代码。
positive= 'an excellent film'
negative='a bad film'
for i in [positive]:
if i in [negative]:
print (i)
positive.remove(i)
print (positive)
但是,此代码将打印所有正面词而不是正面词而不重复。我该如何更改代码?
期望的输出:
positive= 'an', 'excellent'
negative= 'a', 'bad'
答案 0 :(得分:2)
使用Amit Parashar的提示:
positive = 'an excellent film'
negative = 'a bad film'
positive = set(positive.split())
negative = set(negative.split())
positive_uniq = positive.difference(negative)
negative_uniq = negative.difference(positive)
print(positive) # {'an', 'excellent'}
print(negative) # {'a', 'bad'}
答案 1 :(得分:1)
正如其他答案中所提到的,使用Python的“SET”数据结构很容易。但是,如果您只想使用列表,则可以参考以下解决方案。
我们需要拆分 字符串,以便Python可以将其视为不同的字词,然后使用两个嵌套for循环,工作是完成。最后,我正在使用join方法以 Desired Output 中解释的方式打印它。
positive = 'an excellent film'
negative = 'a bad film'
positive = positive.split()
negative = negative.split()
for i in positive:
if i in negative:
positive.remove(i)
negative.remove(i)
for j in negative:
if j in positive:
negative.remove(j)
positive.remove(j)
print("Positive:", ", ".join(positive))
print("Negative:", ", ".join(negative))