Python - 从列表下的列表中获取项目

时间:2018-06-15 09:52:02

标签: python

我有一个如下列表。

list = [[Name,ID,Age,mark,subject],[karan,2344,23,87,Bio],[karan,2344,23,87,Mat],[karan,2344,23,87,Eng]]

我只需要输入名称'Karan'作为输出。

我怎么能得到它?

3 个答案:

答案 0 :(得分:1)

这是一个2D列表,

[XML]$xmlDocument = Get-Content -Path "C:\xxx.xml" $DSCID = $xmlDocument.DistributionService.DSCID

将为您提供列表中的第i个列表以及该列表中的第j个项目。

所以要获得Karen你想要的名单[1] [0]

答案 1 :(得分:1)

我赞成Lio Elbammalf,但决定提供一个答案,该答案提出了一些假设应该在问题中澄清:

  1. 列表中的第一项是标题,它们实际上在列表中(而不是作为问题的一部分),它们作为列表的一部分提供,因为无法保证标题始终是以相同的顺序。
  2. 这可能是一个CSV文件
  3. 暂时忽略 2 ,你想要做的就是删除"标题"从列表中(以便列表的其余部分是统一的),然后找到" Name"的索引。 (您想要的输出)。

    myinput = [["Name","ID","Age","mark","subject"],
                ["karan",2344,23,87,"Bio"],
                ["karan",2344,23,87,"Mat"],
                ["karan",2344,23,87,"Eng"]]
    ## Remove the headers from the list to simplify everything
    headers = myinput.pop(0)
    ## Figure out where to find the person's Name
    nameindex = headers.index("Name")
    ## Return a list of the Name in each row
    return [stats[nameindex] for stats in myinput]
    

    如果保证每一行的名称相同,那么您可以在另一个答案中建议return myinput[0][nameindex]之类的

    现在,如果 2 为真,我假设您正在使用csv模块,在这种情况下使用DictReader加载文件类,然后使用'Name'键访问每一行:

    def loadfile(myfile):
        with open(myfile) as f:
            reader = csv.DictReader(f)
            return list(reader)
    
    def getname(rows):
        ## This is the same return as above, and again you can just 
        ## return rows[0]['Name'] if you know you only need the first one
        return [row['Name'] for row in rows]
    

答案 2 :(得分:0)

在Python 3中,你可以这样做

_, [x, _, _, _, _], *_ = ls

现在x将是karan。