相关疑难解决方法(0)

检查字典中是否已存在给定键

我想在更新密钥的值之前测试字典中是否存在密钥.我写了以下代码:

if 'key1' in dict.keys():
  print "blah"
else:
  print "boo"
Run Code Online (Sandbox Code Playgroud)

我认为这不是完成这项任务的最佳方式.有没有更好的方法来测试字典中的密钥?

python dictionary

2683
推荐指数
15
解决办法
322万
查看次数

if/else在Python的列表理解中?

如何在Python中执行以下操作?

row = [unicode(x.strip()) for x in row if x is not None else '']
Run Code Online (Sandbox Code Playgroud)

实质上:

  1. 用空字符串替换所有Nones,然后
  2. 执行功能.

python list-comprehension

791
推荐指数
8
解决办法
65万
查看次数

在一行上添加一个简单的if-then-else语句

可能重复:
Python三元运算符

我刚刚进入Python,我非常喜欢语法的简洁性.然而,有没有写一个更简单的方法if- then- else语句,因此它适合在同一行?

例如:

if count == N:
    count = 0
else:
    count = N + 1
Run Code Online (Sandbox Code Playgroud)

有没有更简单的写作方式?我的意思是,在Objective-C中我会把它写成:

count = count == N ? 0 : count + 1;
Run Code Online (Sandbox Code Playgroud)

Python有类似的东西吗?

更新

我知道在这种情况下我可以使用count == (count + 1) % N.

我问的是一般语法.

python syntax if-statement ternary-operator

782
推荐指数
5
解决办法
109万
查看次数

如何编写内联if语句用于打印?

我需要在布尔变量设置为时才打印一些东西True.所以,看后这个,我试图用一个简单的例子:

>>> a = 100
>>> b = True
>>> print a if b
  File "<stdin>", line 1
    print a if b
             ^
SyntaxError: invalid syntax  
Run Code Online (Sandbox Code Playgroud)

如果我写的话也一样print a if b==True.

我在这里错过了什么?

python if-statement inline

342
推荐指数
12
解决办法
57万
查看次数

有没有办法在python的lambda中执行"if"

python 2.6中,我想做:

f = lambda x: if x==2 print x else raise Exception()
f(2) #should print "2"
f(3) #should throw an exception
Run Code Online (Sandbox Code Playgroud)

这显然不是语法.是否有可能执行ifin lambda和if if how to do it?

谢谢

python lambda python-2.6

328
推荐指数
6
解决办法
44万
查看次数

将布尔结果转换为数字/整数

我有一个变量存储falsetrue,但我需要01相反.我怎样才能做到这一点?

javascript integer boolean numbers type-conversion

243
推荐指数
15
解决办法
17万
查看次数

Python相当于C++中的短格式"if"

可能重复:
Python三元运算符

有没有办法用Python编写这个C/C++代码? a = (b == true ? "123" : "456" )

c++ python syntax

111
推荐指数
3
解决办法
11万
查看次数

如何在Python中将if/else压缩成一行?

可能重复:
Python三元运算符
在一行上放置一个简单的if-then语句

有没有办法在Python中将if/ else语句压缩到一行?
我经常看到各种快捷方式,并怀疑它也适用于此.

python

102
推荐指数
4
解决办法
24万
查看次数

将if-elif-else语句放在一行上?

我已阅读下面的链接,但它没有解决我的问题.
Python有三元条件运算符吗?(问题是关于将if-else语句压缩到一行)

有没有更简单的方法来编写if-elif-else语句,以便它适合一行?
例如,

if expression1:
   statement1
elif expression2:
   statement2
else:
   statement3
Run Code Online (Sandbox Code Playgroud)

[UPDATE]

if i>100:
    x=2
elif i<100:
    x=1
else:
    x=0
Run Code Online (Sandbox Code Playgroud)

我只是觉得如果上面的例子可以用以下方式编写,它看起来可能更简洁.

x=2 if i>100 elif i<100 1 else 0 [WRONG]
Run Code Online (Sandbox Code Playgroud)

python syntax

100
推荐指数
9
解决办法
13万
查看次数

蟒蛇?(条件/三元)运算符用于分配

C和许多其他语言都有条件(也称为三元)运算符.这允许您根据条件的真实性在两个值之间做出非常简洁的选择,这使得表达式(包括赋值)非常简洁.

我想念这个,因为我发现我的代码有很多条件赋值,在Python中占用四行:

if condition:
    var = something
else:
    var = something_else
Run Code Online (Sandbox Code Playgroud)

而在C中它是:

var = condition? something: something_else;
Run Code Online (Sandbox Code Playgroud)

文件中的一次或两次没问题,但是如果你有很多条件分配,那么线条的数量就会爆炸,最糟糕的是,眼睛会吸引它们.

我喜欢条件运算符的简洁性,因为它在我浏览代码时会让我认为没有战略意义的东西分散注意力.

那么,在Python中,有没有什么技巧可以用来将赋值放到一行上来近似条件运算符的优点,正如我所概述的那样?

c python language-features

88
推荐指数
2
解决办法
6万
查看次数