- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到目前为止,我已经回顾了几个关于这个主题的问题,但我似乎找不到答案。我的目标是按两个标准对 Python 元组列表进行排序。以下代码在问题标题中抛出错误(Python3):
h = [(1, 'ghi'), (2, 'abc'), (2, 'def')]
print(sorted(h, key=lambda tup: (tup[0], -tup[1])))
这里的想法是首先按元组中的整数排序,然后按元组中字符串的逆字母顺序对列表进行排序。我正在寻找如下所示的输出。这也是我希望上面的行打印的内容,但我得到的是 TypeError: Bad Operand Type for Unary -: 'str'
:
[(1, 'ghi'), (2, 'def'), (2, 'abc')]
我知道我可以编写一个自定义比较器来实现这一点,但该站点上的几个答案似乎表明可以通过传递正确的 lambda 函数进行这种排序。我究竟做错了什么?这可能吗?谢谢!
最佳答案
由于元组中的第一个值是一个数字,您可以取反并给 sorted
reverse=True
标志;这将产生按数字顺序对数字进行排序的预期效果(反向排序否定数字给出与对原始数字排序相同的结果)和按反向字母顺序排列的字符串。例如:
h = [(1, 'ghi'), (2, 'abc'), (2, 'def')]
print(sorted(h, key=lambda tup: (-tup[0], tup[1]), reverse=True))
输出:
[(1, 'ghi'), (2, 'def'), (2, 'abc')]
关于Python 排序 : Bad Operand Type for Unary -: 'str' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67144145/
[over.unary]/2 The unary and binary forms of the same operator are considered to have the same name.
这里是this link它说: The static_cast keyword can be used for any normal conversion between types. Convers
公式开头的两个 - 符号是什么意思? 例如:此公式获取字符串日期并将其转换为 Excel 日期序列号: =--(MID(S2,4,3)&LEFT(S2,3)&MID(S2,7,4)) 公式运行正常,我
我正在尝试将 php 算法移植到 perl,但我在使用我不熟悉的一位运算符时遇到了困难... 所以 php 代码看起来像这样: ... $var = '348492634'; print ~$var;
很抱歉重复这个问题,但我无法理解(我认为我的问题是)指针。有人可以帮我解释一下吗?我已经浏览了大量的 stackoverflow 问题、c 教程,而且它最令人困惑,因为每个解决方案似乎都与另一个解决方
我正在尝试读取包含以下内容的文本文件 sport.txt,并尝试将用户输入与文本文件中找到的运动名称相匹配。 如果找到它会打印“找到运动”,如果没有找到它会打印“找不到运动”。 显示的第一个示例看起来
我写的 Bash 不多,所以我对如何解决这个问题有点困惑。我需要检查命令返回的值是否大于 x。当它运行时,我得到了 [: -gt: unary operator expected 我无法修复。 这是我
我正在编写一个简单的代码,输出目录中以 00 开头的子目录的数量。这是我的代码: #!/bin/bash maxout=2 function getnumber { number=`ls |
#!/bin/bash export PROCNAME=test export TABLE_ID=0 if [ ${TABLE_ID} -eq "" ]; then echo h
以下代码片段在我的工作系统中运行,同样的代码在我的 PC 中抛出错误。 std::bitset my_bit(*(uint32_t*)&(OFDM_cod[V][a/8].real())); Erro
我在玩codewar,我赢不了这个挑战。链接在这里: http://www.codewars.com/kata/54ca3e777120b56cb6000710/train/python 这是我的实现
我在第 5 行和第 11 行收到错误一元运算符。请帮助解决这个问题。 echo ”enter the number” read n q=$n a=0 while [ $q – gt 0 ] do
C++ 标准库提供了将比较器传递给 std::sort 的功能.但是,我的代码中有很多情况需要对 T 的列表进行排序。函数对象f .像这样的比较器将是一个有效的选择: bool compare(con
这个问题应该是给语言律师的。 假设 signed 和 unsigned int 都是 32 位宽。如 n3337.pdf 草案 5.3.1.8 所述, (-(0x80000000u)) = 0x100
鉴于 a 是未定义的,下面看起来不错: a + b + blah # => NameError: undefined local variable or method `a' for main:Obj
给定 Ruby 代码 line = "first_name=mickey;last_name=mouse;country=usa" record = Hash[*line.split(/=|;/)]
shell脚本报错:"[: =: unary operator expected"解决办法 在匹配字符串相等时,我用了类似这样的语句:
我已经想出了如何优先实现二元运算符,像这样(伪代码): method plus times() while(consume(plus_t)) do times() en
考虑这个管道。 let Pipeline = [ { $match: { }}, { $group: { workHours: { $sum: { $divid
我目前遇到一个问题,在你看它之前,请尝试认为我只是一个尝试使用带有函数的指针的初学者。 我解释一下自己:我需要有一个菜单( Function )可以调用任何其他函数,但我的问题是我从我的“main”调
我是一名优秀的程序员,十分优秀!