【问题标题】:String set difference字符串集差异
【发布时间】:2020-12-10 20:34:31
【问题描述】:

我有两组字符串:ab

type(a)
set

type(b)
set

a
{'South 2nd Street'}

b
{'8921 South 2nd Street'}

为了找出这两组之间的区别,我应用了difference() 函数,我想返回8921 ,但返回的是整个字符串

b.difference(a)
{'8921 South 2nd Street'}

我猜这是因为这些集合是根据索引 0、1、2、3 等处的字符进行比较的(在这种情况下,ab 完全不同)

那么,在不使用集合差异的情况下,在 Python 中获得两个字符串之间的组合差异的正确方法是什么?在这种情况下,输出应该是8921

【问题讨论】:

  • "应该返回 8921 但返回整个字符串"不,不应该。为什么你相信它应该?这两个集合对象包含两个不同的对象,所以很明显,区别在于那个对象。 “我猜这是因为这些集合是通过索引 0、1、2、3 等处的字符进行比较的(在这种情况下,a 与 b 完全不同)”不,它是在比较两者集合中的不同对象.
  • 不,那是事先不知道的

标签: python string set difference


【解决方案1】:

您的集合包含作为单个元素的整个地址,而不是每个单词的单独元素。

你需要把字符串拆分成单词,然后再做一组。

a = set('South 2nd Street'.split())
b = set('8921 South 2nd Street'.split())
print(b.difference(a))
{'8921'}

【讨论】:

    猜你喜欢
    • 2014-08-11
    • 2022-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 2013-09-26
    • 2010-10-02
    • 1970-01-01
    相关资源
    最近更新 更多