从元组列表中提取第一个元素到列表中

时间:2020-01-24 07:01:59

标签: python-3.x list tuples

我有提取的元组列表,例如CRQ元素对应于相关状态,例如等待,监视,完成。

pair=[('CRQ1', 'WAIT'), ('CRQ1', 'DONE'), ('CRQ2', 'WAIT'),('CRQ2', 'MONITOR'), ('CRQ3', 'DONE'), ('CRQ4', 'MONITOR'),('CRQ5', 'DONE'),('CRQ5', 'MONITOR')]

我的要求是,如果CRQ元素不具有状态“ DONE”,则将它们提取到另一个列表中。

因此,列表应如下所示:

list=[CRQ2,CRQ4]

3 个答案:

答案 0 :(得分:0)

您可以通过简单的列表理解来实现:

list = [val [0],如果val [1]!='DONE',则成对val

答案 1 :(得分:0)

有两种方法可以做到这一点:

  1. 程序方式:
pair=[('CRQ1', 'WAIT'), ('CRQ1', 'DONE'), ('CRQ2', 'WAIT'),('CRQ2', 'MONITOR'), ('CRQ3', 'DONE'), ('CRQ4', 'MONITOR'),('CRQ5', 'DONE'),('CRQ5', 'MONITOR')]
arr = []

for cr, val in pair:
    if val != 'DONE':
        arr.append(cr)
  1. 声明性方式(使用列表推导)
pair=[('CRQ1', 'WAIT'), ('CRQ1', 'DONE'), ('CRQ2', 'WAIT'),('CRQ2', 'MONITOR'), ('CRQ3', 'DONE'), ('CRQ4', 'MONITOR'),('CRQ5', 'DONE'),('CRQ5', 'MONITOR')]
arr = [cr for cr, val in pair if val != 'DONE']

答案 2 :(得分:0)

您可以使用https://drive.google.com/file/d/GOOGLE_DRIVE_FILE_ID 通过键(“ CRQ1”,“ CRQ2”等)组合记录,然后可以根据您的声明检索键:

https://docs.google.com/uc?id=GOOGLE_DRIVE_FILE_ID