Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
简称;如果;在python中,如果是追加到数组中_Python_Python 2.7_If Statement - Fatal编程技术网

简称;如果;在python中,如果是追加到数组中

简称;如果;在python中,如果是追加到数组中,python,python-2.7,if-statement,Python,Python 2.7,If Statement,如果数组中还没有数据,我想使用内联if语句将数据追加到数组中,如中所示: arr.append( data if not data in arr ) 但此代码返回: SyntaxError:无效语法 还有其他选择吗 arr if data in arr else arr.append(data) (如果数据已经存在于它的其他附件中,则返回arr不变。(是的,我们正在滥用副作用)) 内联if语句也必须包含else语句,如arr else 3中的data if not data 请注意,此示例不

如果数组中还没有数据,我想使用内联if语句将数据追加到数组中,如中所示:

arr.append( data if not data in arr )
但此代码返回:

SyntaxError:无效语法

还有其他选择吗

arr if data in arr else arr.append(data)
(如果
数据
已经存在于它的其他附件中,则返回
arr
不变。(是的,我们正在滥用副作用))


内联if语句也必须包含else语句,如arr else 3中的data if not data

请注意,此示例不起作用。

使用:

arr.extend([data] if data not in arr else [])
例子 让我们从一个示例数组开始:

>>> arr = [1, 2, 3]
现在让我们尝试
data=4
,它不在
arr
中:

>>> data = 4
>>> arr.extend([data] if data not in arr else [])
>>> arr
[1, 2, 3, 4]
>>> data = 2
>>> arr.extend([data] if data not in arr else [])
>>> arr
[1, 2, 3, 4]
现在,让我们尝试使用
data=2
,该值已经在
arr
中:

>>> data = 4
>>> arr.extend([data] if data not in arr else [])
>>> arr
[1, 2, 3, 4]
>>> data = 2
>>> arr.extend([data] if data not in arr else [])
>>> arr
[1, 2, 3, 4]
这使得
arr
保持不变

笔记
  • append
    将附加某些内容。因为我们似乎只想在数据不在
    arr
    中时追加数据,所以这不是正确的使用方法。方法
    extend
    避免了这个问题

  • [data]如果数据不在arr中,则如果
    数据不在
    arr中,则其他[]
    将返回
    [data]
    。否则,它将返回
    []

  • arr.extend([])
    保持
    arr
    不变

  • arr.extend([data])
    将元素
    data
    添加到
    arr
    的末尾


  • 你需要一个
    else
    在那里的某个地方。这里没有“short if”。如果您想使用
    if
    语句,只需使用
    if
    语句。或者将其反转:
    if-not-data-in-arr:arr.append(data)
    @PRMoureu,这应该是一个答案,而不是一个注释。您确实尝试过这个吗?好主意,但对我来说似乎行不通。是的,它行不通并返回“SyntaxError:invalid syntax”哇,谢谢你的精彩解释!一切都很完美!