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

仅当字符串匹配时才在python中连接字符串

仅当字符串匹配时才在python中连接字符串,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,我有一张这样的名单 names = ['Test', 'Test 2', 'Test 3', 'Unknown'] 我通过执行以下操作将它们从列表转换为字符串: test = ', '.join(names) 我想加入名单,因为我这样做,但我想忽略,如果名称是未知的 我如何才能有效地完成这项工作 我可以这样做,但这可能不是最好的方式,因为我循环了两次: arr = [] for n in names: if n != 'Unknown': arr.appe

我有一张这样的名单

names = ['Test', 'Test 2', 'Test 3', 'Unknown']
我通过执行以下操作将它们从列表转换为字符串:

test = ', '.join(names)
我想加入名单,因为我这样做,但我想忽略,如果名称是未知的

我如何才能有效地完成这项工作

我可以这样做,但这可能不是最好的方式,因为我循环了两次:

arr = []
   for n in names:
      if n != 'Unknown':
         arr.append(n)

您可以使用以下列表:

', '.join([i for i in names if i!='Unknown'])
# 'Test, Test 2, Test 3'

您可以使用以下列表:

', '.join([i for i in names if i!='Unknown'])
# 'Test, Test 2, Test 3'

您可以先重新创建列表,而不需要未知项,因此可以执行以下操作:

names = [element for element in names if element.lower() != "unknown"]
或者在连接过程中直接在行中添加:

test = ', '.join([element for element in names if element.lower() != "unknown"])

ps:请注意,我添加了一个代码,将该过滤器视为不区分大小写的< /p> ,您可以先重新创建列表,而不必添加未知内容,这样您就可以:

names = [element for element in names if element.lower() != "unknown"]
或者在连接过程中直接在行中添加:

test = ', '.join([element for element in names if element.lower() != "unknown"])

PS:请注意,我添加了一个代码,将该过滤器视为不区分大小写的

< p>如果你不想循环两次,你应该像你一样重复列表,但是从名字(1)开始,这样做连接:

test = names[0]
for name in names[1:]:
    if name != 'Unknown':
        test += ', '+name

如果您不想循环两次,您应该像以前一样迭代列表,但从名称[1]开始,并进行如下连接:

test = names[0]
for name in names[1:]:
    if name != 'Unknown':
        test += ', '+name