我遇到了一些我以前从未见过的python代码语法.这是一个例子:
i = 0
for spam in range(10):
i += [1,3][i > 5]
print(i)
结果是1,2,3,4,5,6,9,12,15,18的顺序.因此,它递增1直到i> 5,然后增加3.
以前,我会把这句话写成:
if i > 5:
i += 3
else:
i += 1
那么这条线是什么:i = [1,3] [i> 5]
>你怎么称呼这种语法结构?
>它是某种形式的列表理解还是完全不同的东西?
语法很有趣,我想了解更多,但不知道在哪里看.
编辑:
谢谢DarksTarone.我从未想过使用表达式来返回列表索引.那很酷.这意味着您还可以执行以下操作:spam = [“Even”,“Odd”] [eggs%2]返回偶数或奇数字符串或foo = [“A”,“B”,“C”] [zot %3]循环遍历zot值时循环三个选项.
可能不习惯使用这种结构,因为其他表达式更容易理解.但是,我会把这个放在那个完美情况的技巧中.
最佳答案
所以我认为这里发生的是列表([1,3])可以是:
[1,3][0] # 1
要么
[1,3][1] # 3
它利用了0 == False和1 == True的事实.虽然有点不透明,但它相当整洁.我可能会这样写:
i = 0
for _ in range(10):
i += 3 if i > 5 else 1
print(i)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。