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

时间:2018-12-04 03:38:02

标签: 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.append(n)

3 个答案:

答案 0 :(得分:3)

您可以使用以下列表理解:

dim rng as range

if not isempty(cells(7, "C")) then 
  set rng = range(cells(6, "C"), cells(6, "C").end(xldown).offset(0, 22))
else
  set rng = range(cells(6, "C"), cells(6, "Y"))
end if

debug.print rng.address(0,0)

答案 1 :(得分:3)

您可以先重新创建列表,而无需使用Unknown,因此您可以这样做:

names = [element for element in names if element.lower() != "unknown"]

或者在连接过程中直接添加到行中:

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

PS:看到我添加了一个代码,该代码会将过滤器视为不区分大小写

答案 2 :(得分:1)

如果您不想循环两次,则应该以与您相同的方式迭代列表,但要从名称[1]开始并进行如下串联:

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