相关疑难解决方法(0)

Python 中的一行布尔检查

我是一名相对较新的 Python 开发人员,但我有 Java 背景。在 Java 中,有一行布尔检查器/分配器(由于缺乏更好的术语):

int result = (x)?y:z;
Run Code Online (Sandbox Code Playgroud)

我试图在Python中使用类似的方法,但我不确定这个结构是否存在。有没有一种方法可以声明一个变量,检查条件是否为真并将其分配给两个值之一而不使用 if/else?

python boolean idioms ternary-operator

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

如何将元素列表转换为0或1的列表

我有一个列表,其元素是一个json对象或None.将它转换为0和1的列表最优雅的方法是什么.例如,这是我的输入:

mylist = [j1, j2, None, j3, None]

j1,j2,j3是json对象.预期的产出是

output_list = [1, 1, 0, 1, 0]

我可以使用for循环后跟if语句来实现它.有没有办法做到更优雅/ pythonic?

python

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

Python,一行if,else还是声明?

我很清楚你可以if else用Python 做一行语句,但我想知道是否有可能添加一个or.出于某种原因,这不起作用,即使它看起来应该如此.有没有办法做到这一点:

def write(value):
    return 'That is not a good value' if value is not 1 or 0 #SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

编辑

因此,此函数将检查传入的值是否为整数0或1,'That is not a good value'如果不是则返回,否则返回任何内容.IE

write(1) #Nothing
write(2) # That is not a good value
Run Code Online (Sandbox Code Playgroud)

python if-statement

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

如何将if-then语句写成逻辑语句?

我可以用以下形式表示IF-THEN语句:

a = (x==10) ? true : false;
Run Code Online (Sandbox Code Playgroud)

这相当于

if (x==10)
  a=true;
else
  a=false;
Run Code Online (Sandbox Code Playgroud)

是否有可能在Python中做同样的事情?

python if-statement

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

基于带有lambda表达式的random int打印"Left"或"Right"?

我读了一个(有点)幽默的故事,关于TSA向开发人员支付140万美元的应用程序只是输出一个随机的"左"或"右"箭头.我决定在Python中自己尝试一下.

我想知道我是否可以使用Lambda表达式或列表理解等缩短if-else语句...有条件地打印字符串的语法简写.

import os, datetime, random
while True:
    os.system('clear')
    print "ENTER to continue, or type 'quit'"
    print datetime.datetime.now()
    print ''
    i = random.randint(1,2)
    if i == 1:
        print 'Left'
    else:
        print 'Right'
    print ''
    prompt = raw_input("")
    if prompt == 'quit':
        quit()
Run Code Online (Sandbox Code Playgroud)

python lambda

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

Python - 转换为lambda函数

如何在Python(v 2.7)中将以下内容转换为lambda函数?

def my_func(obj): 
   if obj.type: 
       return obj.name
   else: 
       return obj.type
Run Code Online (Sandbox Code Playgroud)

python function python-2.7

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

Python 是否有带有 elif 的三元条件?

我最近发现了这个问题:Does Python have a ternary conditional operator? 并发现称为三元条件的东西a = b if c == d else e
我的问题:有一种方法可以使三元条件与elif? 类似的东西a = b if c == d elif e == f i else j

python conditional-operator

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

单行if-then语法使用链式比较?

我试图从3行简化链式比较:

if -10 < amount < 10:  # amount can range from -999 to 999
    width = 3
else:
    width = 2
Run Code Online (Sandbox Code Playgroud)

到一行表达式:

width = 3 if (-10 < amount < 10) else width = 2
Run Code Online (Sandbox Code Playgroud)

Pycharm抛出一个 SyntaxError

SyntaxError:无法分配给条件表达式

什么是纠正写的方式简化这个陈述?我试过了:

width = 3 if (-10 < amount) else width = 2
Run Code Online (Sandbox Code Playgroud)

但我收到同样的错误.我正在使用Python 3.谢谢.

python comparison python-3.x

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

如何在列表推导中使用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
查看次数