相关疑难解决方法(0)

如何检查平面列表中是否有重复项?

例如,给定列表['one', 'two', 'one'],算法应该返回True,而给定['one', 'two', 'three']它应该返回False.

python string list duplicates

167
推荐指数
6
解决办法
21万
查看次数

Java的TreeSet等效于Python?

我最近遇到了一些Java代码,它们简单地将一些字符串放入Java TreeSet中,为它实现了一个基于距离的比较器,然后以快乐的方式进入日落以计算给定的分数来解决给定的问题.

我的问题,

  • 是否有可用于Python的等效数据结构?

    • Java树集看起来基本上是一个有序字典,可以使用某种比较器来实现这种排序.
  • 我看到有一个针对 OrderedDict的Py3KPEP,但我使用的是2.6.x. 那里有一堆有序的dict实现 - 特别是可以推荐的任何人?

PS,我想补充-我可以大概导入DictMixin或UserDict中,并实现自己的排序/有序字典,并使其发生通过比较器功能-但是,这似乎是矫枉过正.

谢谢.


更新.谢谢你的回答.为了详细说明,我可以说我有一个定义的比较函数,(给定一个特定的值ln),

def mycmp(x1, y1, ln):
  a = abs(x1-ln)
  b = abs(y1-ln)
  if a<b:
    return -1
  elif a>b:
    return 1
  else:
    return 0
Run Code Online (Sandbox Code Playgroud)

我有点不确定如何将这个集成到这里给出的有序字典链接中给出的顺序中.

就像是,

OrderedDict(sorted(d.items(), cmp=mycmp(len)))
Run Code Online (Sandbox Code Playgroud)

我们欢迎您的想法.

python java treeset data-structures

19
推荐指数
1
解决办法
2万
查看次数

Python:如何检查项是否已添加到集合中,没有2x(散列,查找)

我想知道是否有一个清晰/简洁的方法来添加一些东西,并检查它是否添加没有2x哈希和查找.

这是你可能会做的,但它有2x hash的项目

if item not in some_set:  # <-- hash & lookup
    some_set.add(item)    # <-- hash & lookup, to check the item already is in the set

    other_task()
Run Code Online (Sandbox Code Playgroud)

这适用于单个散列和查找,但有点难看.

some_set_len = len(some_set)
some_set.add(item)
if some_set_len != len(some_set):

    other_task()
Run Code Online (Sandbox Code Playgroud)

使用Python的set api有更好的方法吗?

python set python-3.x

12
推荐指数
2
解决办法
2148
查看次数

"添加到set"在java中返回一个布尔值 - python怎么样?

在Java中,我喜欢使用"添加到集合"操作返回的布尔值来测试元素是否已经存在于集合中:

if (set.add("x")) {
   print "x was not yet in the set";
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,Python中有什么方便吗?我试过了

 z = set()
 if (z.add(y)):
     print something
Run Code Online (Sandbox Code Playgroud)

但它没有打印任何东西.我错过了什么吗?谢谢!

python java set

9
推荐指数
2
解决办法
5873
查看次数

为什么`{*l}`比`set(l)`更快 - python集(不仅仅适用于所有序列的集合)

所以这是我的时间:

>>> import timeit
>>> timeit.timeit(lambda: set(l))
0.7210583936611334
>>> timeit.timeit(lambda: {*l})
0.5386332845236943
Run Code Online (Sandbox Code Playgroud)

为什么这样,我的意见是平等的,但事实并非如此.

因此,从这个例子中拆包很快,对吧?

python timing set unpack sequence

2
推荐指数
1
解决办法
100
查看次数