我的数据是:
[{u'webpath': u'/etc/html', u'server_port': u'80'}, {u'webpath': [u'/www/web'], u'server_port': u'80'}, {u'webpath': [u'/www/web'], u'server_port': u'80'}, {u'webpath': [u'/www/shanghu'], u'server_port': u'80'}, {u'webpath': [u'/www/shanghu'], u'server_port': u'80'}, {u'webpath': [u'/www/www/html/falv'], u'server_port': u'80'}, {u'webpath': [u'/www/www/html/falv'], u'server_port': u'80'}, {u'webpath': [u'/www/www/html/falv'], u'server_port': u'80'}, {u'webpath': [u'/www/falvhezi'], u'server_port': u'80'}, {u'webpath': [u'/www/test10'], u'server_port': u'80'}, {u'webpath': u'/etc/html', u'server_port': u'80'}, {u'webpath': u'/etc/html', u'server_port': u'80'}, {u'webpath': u'/etc/html', u'server_port': u'80'}, {u'webpath': u'/etc/html', u'server_port': u'80'}, {u'webpath': u'/etc/html', u'server_port': u'80'}, {u'webpath': u'/etc/html', u'server_port': u'80'}, {u'webpath': [u'/www/400.ask.com'], u'server_port': u'80'}, {u'webpath': [u'/www/www'], u'server_port': u'80'}, {u'webpath': [u'/www/www'], u'server_port': u'80'}, {u'webpath': [u'/www/www'], u'server_port': u'80'}, {u'webpath': [u'/www/zhuanti'], u'server_port': u'80'}, {u'webpath': [u'/www/zhuanti'], u'server_port': u'80'}, {u'webpath': [u'/www/shanghu'], u'server_port': u'80'}]
我的代码是:
^{pr2}$但脚本返回:
TypeError: "unhashable type: 'list'"
最直接的方法是直接使用正在构建的新列表测试成员资格。在
这将处理不可损坏类型的任意(预先未知)嵌套级别的情况。它还使您的代码更简单、更易于理解,而且可能更高效,因为您不需要创建您不需要的额外数据(没有
seen
集,没有元素到元组的转换)。在您正在从字典中创建元组以使其可散列,但在这些元组中仍然可以存在不可散列的列表!相反,您还必须“tuplefy”这些值。在
注意,这有点小故障,因为dict中的第一个条目只是一个字符串,而其他条目是字符串列表。您可以使用
^{pr2}$if/else
来修复此问题,但实际上不需要这样做。在或者,你也可以记住字典的字符串表示。。。在
相关问题 更多 >
编程相关推荐