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

Python 为混合列表设置条件

Python 为混合列表设置条件,python,Python,也许有更好的方法,但我有一个混合元素列表: outlist = [10, [ETSc, Juniper Hairstreak], [ETSc, Spotted Turtle], [ETSc, Blanding's Turtle], IWWH] 我想做的是迭代这个列表,如果列表元素包含ETSc,那么我想将它转换成如下字符串: ETSc (Juniper Hairstreak) 如果它不包含ETSc,则我只想将其转换为字符串: IWWH 最终,字符串将填充access数据

也许有更好的方法,但我有一个混合元素列表:

outlist = [10, [ETSc, Juniper Hairstreak], [ETSc, Spotted Turtle],
           [ETSc, Blanding's Turtle], IWWH]
我想做的是迭代这个列表,如果列表元素包含
ETSc
,那么我想将它转换成如下字符串:

ETSc (Juniper Hairstreak)
如果它不包含
ETSc
,则我只想将其转换为字符串:

IWWH
最终,字符串将填充access数据库表中的变量。但是我不知道如何告诉Python找到包含
ETSc
的列表元素,因为有些元素是列表中的列表,有些只是字符串


非常感谢您的帮助

类似这样,使用:


正如@julio所评论的,您可以使用以下函数使其更具可读性:

def xform(elt):
    if type(elt) == list and len(elt) > 1 and elt[0] == "ETSc":
        return elt[0] + " (" + elt[1] + ")"
    else:
        return str(elt)

output = [xform(elt) for elt in input]
你可以

import types

for e in outlist:
   if types.TypeList(e):
      e = str(e[0]+"("+e[1]+")")#or something like that
   else
      e= str(e)

祝你好运

请发布实际运行的代码。您的示例中缺少一些引号。而且,“我不知道”也没用。我们不知道是什么让你困惑。你到底试了什么?什么不起作用?ETSc,杜松发纹是不是有问题?别忘了在示例代码中使用“”,没有一个元素是字符串,如果你想让它们成为字符串,你必须把它们放在
'
之间:(例如:
'ETSc'
)如果其中任何一个答案对你有帮助,你应该接受其中一个答案。在这种情况下,我会使用
def
,这个
列表理解
看起来有点混乱,谢谢,谢谢!!这很有帮助!我还是一个初学者,不知道如何在列表中引用列表的元素。我也不知道“类型”。非常感谢你们两位!!
outlist = [10, ['ETSc', 'Juniper Hairstreak'], ['ETSc', 'Spotted Turtle'], ['ETSc', 'Blanding\'s Turtle'], 'IWWH']

["%s (%s)" % (x[0], x[1]) if type(x) == list else str(x) for x in outlist]
outlist = [10, ['ETSc', 'Juniper Hairstreak'], ['ETSc', 'Spotted Turtle'], ['ETSc', 'Blanding\'s Turtle'], 'IWWH']

["%s (%s)" % (x[0], x[1]) if type(x) == list else str(x) for x in outlist]