我正在尝试创建一个列表,其中偶数显示为偶数,奇数显示为"奇数".
这是我正在尝试的代码.
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)
我究竟做错了什么?
这是问题:
实现函数processList2(inputList, specialItem, ignoreItems),该函数返回一个新列表,其中包含inputList(按原始顺序)的所有项目,但以下各项除外
ignoreItemsspecialItem(如果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语句中的逻辑是如何工作的-
return ["even", "odd"][num % 2]
Run Code Online (Sandbox Code Playgroud)
此函数正确返回偶数/奇数值。
我正在运行 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 支持单行 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) Java,c,c ++都有这样的语法糖:
int a = condition ? c : d// if condition is true , a = c, else a = d
Run Code Online (Sandbox Code Playgroud)
python有类似的语法糖吗?
我有这样的事情: -
List = [["a","1"],["b","2"]]
Run Code Online (Sandbox Code Playgroud)
而我想做的是将单个字母整数保持为整数.所以输出应该是这样的
List = [["a",1],["b",2]]
Run Code Online (Sandbox Code Playgroud)