如何为列表中的元素创建if语句?

时间:2019-01-18 19:52:30

标签: python

我想知道如何创建一个if语句,只要列表中至少有一个满足if语句要求的值,该if语句就会对列表起作用。

例如,给定一个列表

x=[1,2,3,4,5,6,7,8,9]
y=[1,2,3,4]
z=[1,2,3,8]

我想创建一个if语句,如果该列表包含值在5到10之间的元素,则该列表将追加***。

意思是,在if语句之后,结果将是

x=[1,2,3,4,5,6,7,8,9,***]
y=[1,2,3,4]
z=[1,2,3,8,***]

由于x和z都包含5到10之间的元素,因此它们会收到***。

3 个答案:

答案 0 :(得分:4)

您可以这样做。使用生成器表达式和any()函数测试是否有任何元素符合您的条件。

x = [1,2,3,4] #two lists for testing
y = [5]       

if any(5 <= i <= 10 for i in x):
        x.append("***")

if any(5 <= i <= 10 for i in y):
        y.append("***")

print(x,y)

输出:

[1, 2, 3, 4] [5, '***']

答案 1 :(得分:2)

Python 3中最简洁的方法是使用生成器表达式:

if any(5 < x < 10 for x in lst):
  lst.append('***')

这里是工作中的example

编辑:感谢您的编辑和评论,这种语法令人不寒而栗。

答案 2 :(得分:-1)

i=0
while i<len(x):
  if x[i]>5 and x[i]<10: #if any item of list is between 5 and 10 break loop
    break
  i+=1

if i<len(x): #check if i less than len(x) this means that loop 'broken' until the end
  x.append('***')