【问题标题】:how to convert lists to tuples in python to avoid hashable list error?如何在python中将列表转换为元组以避免可散列列表错误?
【发布时间】:2018-02-21 21:42:17
【问题描述】:

我正在尝试向仅采用不可变对象的 set 函数添加一对值。我只想将元组传递给它。我有列表,现在我想将其转换为元组。我尝试过tuple(a) 之类的方法,但没有奏效。它给出了一个错误unhashable lists。我如何将我的原始数据(它是一个列表)转换为循环中的元组,如下面的代码所示?最后,我想将所有值添加到 set 对象中。

代码

waitfor = set()
    print "in scout"
    for a in self.acceptors:
      tuple(a)  
      self.sendMessage(a[self.port],a[self.proc],  {'msg_type':'P1a', 'msg':P1aMessage(self.id, self.ballot_number).__dict__})
      waitfor.add(a) 

原始数据

[[u'3.0', 9004], [u'3.1', 9008]]

【问题讨论】:

  • a = tuple(a).

标签: python list tuples


【解决方案1】:

你想要一个元组的元组,所以:

a = tuple(tuple(p) for p in a)

【讨论】:

  • 我认为这只是一个打字错误,他们忘记将tuple(a) 分配回aa 必须是 tuple,因为这是添加到 set
  • 你的意思是a = tuple(tuple(p) for p in self.acceptors)
  • @Ev.Kounis 也许吧,但当然最好使用常规的for 循环以防万一,因为他们不仅仅是在构建list/tuple
猜你喜欢
  • 2022-10-13
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2011-07-27
  • 1970-01-01
相关资源
最近更新 更多