相关疑难解决方法(0)

如何在列表推导中使用if/else?

我正在尝试创建一个列表,其中偶数显示为偶数,奇数显示为"奇数".

这是我正在尝试的代码.

lst = [if x % 2 == 0 else 'odd' for x in range(11)]
Run Code Online (Sandbox Code Playgroud)

我希望得到这样的东西

[0, "odd", 2, "odd", 4, "odd", 6, "odd", 8, "odd", 10]
Run Code Online (Sandbox Code Playgroud)

但我一直有SyntaxError异常:

>>> lst = [if x % 2 == 0 else 'odd' for x in range(11)]
  File "<stdin>", line 1
    lst = [if x % 2 == 0 else 'odd' for x in range(11)]
            ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python

0
推荐指数
1
解决办法
82
查看次数

列出3个参数的理解和语法错误

这是问题:

实现函数processList2(inputList, specialItem, ignoreItems),该函数返回一个新列表,其中包含inputList(按原始顺序)的所有项目,但以下各项除外

  1. 删除列表中出现的所有内容 ignoreItems
  2. 的出现specialItem(如果specialItem不是ignoreItems)应该成为串"special"在新的清单。

我试图通过inputList使用列表理解来创建一个新列表。我可以items not in ignoreItems,但似乎无法弄清楚if的打印方式item == specialItem

这是我到目前为止的内容:

def processList2(inputList, specialItem, ignoreItems):
    return [item for item in inputList if item not in ignoreItems]
Run Code Online (Sandbox Code Playgroud)

样本输出类似于:

>>> processList2([1,1,2,2], 1, [2])
['special', 'special']
Run Code Online (Sandbox Code Playgroud)

要么

>>> processList2([1,2,3,4,True,'dog'], 4, [3,5,4])
[1, 2, True, 'dog']
Run Code Online (Sandbox Code Playgroud)

python list-comprehension

0
推荐指数
1
解决办法
71
查看次数

需要更多地了解 python 语句:- return ["even", "odd"][num % 2]

有人可以帮我理解下面的python语句中的逻辑是如何工作的-

return ["even", "odd"][num % 2]
Run Code Online (Sandbox Code Playgroud)

此函数正确返回偶数/奇数值。

python math list slice

0
推荐指数
1
解决办法
63
查看次数

如何有条件地从一个值中减去

我正在运行 Python 3.7.4,并且在处理某些事情时发现了一些不良行为,然后我将其简化为:

>>> x = 5
>>> x -= 1 if False else print("blah")
blah
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for -=: 'int' and 'NoneType'
Run Code Online (Sandbox Code Playgroud)

除非有什么明显的东西我只是想念?为什么它甚至试图评估 -= 如果它落入其他?

python

0
推荐指数
1
解决办法
176
查看次数

+= 运算符可以在 Python 中的单行 if 语句中使用吗?

我认为 Python 支持单行 if 语句,但+=在 Leetcode 和 Repl 上出现错误。双线一号有效,所以我在这里主要是为了弄清楚 Python 的内部工作原理。

基于这个问题,我认为这会奏效。我想知道这是 Python 还是平台(Leetcode 或 Replit)问题。

这是我粘贴在下面以供后代使用的replit代码。

class Solution:
    def findNumbers(self, nums: List[int]) -> int:
        count = 0
        
        for num in nums:
            count += 1 if len(str(num)) % 2 == 0
            
        return count

nums = [12,345,2,6,7896]
s = Solution()
print(s.findNumbers(nums))
Run Code Online (Sandbox Code Playgroud)

我的错误是:

File "main.py", line 8
    count += 1 if len(str(num)) % 2 == 0
                                       ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python if-statement python-3.x

-1
推荐指数
1
解决办法
58
查看次数

python是否有语法糖“ condition?c:d”

Java,c,c ++都有这样的语法糖:

int a = condition ? c : d// if condition is true , a = c, else a = d
Run Code Online (Sandbox Code Playgroud)

python有类似的语法糖吗?

python

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

关于一行中的列表元素的更正(str到int)

我有这样的事情: -

List = [["a","1"],["b","2"]]
Run Code Online (Sandbox Code Playgroud)

而我想做的是将单个字母整数保持为整数.所以输出应该是这样的

List =  [["a",1],["b",2]]
Run Code Online (Sandbox Code Playgroud)

python list python-2.7 python-3.x python-3.5

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