Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.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_List Comprehension - Fatal编程技术网

Python 如何解决列表理解语法错误?

Python 如何解决列表理解语法错误?,python,list-comprehension,Python,List Comprehension,在上面的代码片段中,我需要使用列表理解将我的名字的字符附加上一个。例如,在上面的示例中,预期结果是test 但是,我得到了无效的语法作为错误。如果您对此有任何见解,我们将不胜感激。谢谢您已经切换了for和if else的位置;当存在else时,if-else应位于for之前。如果没有其他方法,您的代码将是完美的。以下是您的代码的固定版本: my_string = test def func_2(my_string): return [i+"*" for i in my_string if

在上面的代码片段中,我需要使用列表理解将我的名字的字符附加上一个。例如,在上面的示例中,预期结果是test


但是,我得到了无效的语法作为错误。如果您对此有任何见解,我们将不胜感激。谢谢

您已经切换了for和if else的位置;当存在else时,if-else应位于for之前。如果没有其他方法,您的代码将是完美的。以下是您的代码的固定版本:

my_string = test
def func_2(my_string):
    return [i+"*" for i in my_string if i!=my_string[len(my_string) - 1] else i]
print(func_2(my_string.copy()))

查看有关语法和用法的更多详细信息。

您的意思是[i+*if i!=my_string[lenmy_string-1]或者i for i in my_string]?请参阅筛选子句中没有其他内容。如果您不需要使用条件表达式,请将其放在主部分删除else扩展下面的答案也很好注意,您可以使用索引-1引用列表中的最后一个元素,并且可以使用fstrings向变量添加字符:[f{c}*If c!=s[-1]else c for c in s]
def func_2(my_string):
    return [i+"*" if i!=my_string[len(my_string) - 1] else i for i in my_string]