【问题标题】:python one line statement for loop with if else [duplicate]python单行语句for循环与if else [重复]
【发布时间】:2016-10-06 10:35:11
【问题描述】:

是否可以将这个逻辑写在一行语句中?

B = []
for book in books:
    if book not in B:
         B.append(book)

我试过了,但它是错误的:

B = [book if book not in B for book in books] 

有没有办法在自身内部引用变量?

【问题讨论】:

  • 你的意思是B = set(books)...?
  • 是的,就是这样@deceze
  • @deceze 曾经使用过B = list(set(books))
  • @C.LECLERC 当然,如果您坚持使用list。如果任何可迭代对象都可以,将其保留为 set 也可以。

标签: python


【解决方案1】:
B=[book for book in books if  not book in B] 

应该做的伎俩

【讨论】:

  • 我试过这个代码,但是 B 的书是重复的..
  • @pietà 因为B 仅在完成此理解后才被定义。这实际上会以NameError: name 'B' is not defined 失败。如果您之前仍然定义了B = [],那么您显然可以规避该错误......
猜你喜欢
  • 2023-03-27
  • 2021-12-23
  • 2016-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多