gpt4 book ai didi

python - 当列表值为字符串时,如何将 else 与列表理解一起使用?

转载 作者:行者123 更新时间:2023-11-30 22:38:40 29 4
gpt4 key购买 nike

在以下列表数据中:

attri_values = ['gene_id "scaffold_200002.1"', 'gene_version "1"', 'transcript_id "scaffold_200002.1"', 'transcript_version "1"', 'exon_number "2"', 'gene_source "jgi"', 'gene_biotype "protein_coding"', 'transcript_source "jgi"', 'transcript_biotype "protein_coding"', 'exon_id "scaffold_200002.1.exon2"', 'exon_version "1"']

假设我想应用条件表达式:

gene_id = [x for x in attri_values if 'gene_id' in x]

# But, when there is not list values with 'gene_id' I would like to return NA (string type) but not an empty list, but I am being unsuccessful

gene_name = [x if 'gene_name' in x else 'NA' for x in attri_values]

print(gene_name) #gives me
['NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA', 'NA']

# I only want one 'NA' in string format.

我尝试在不同的点写其他条件。我还尝试了 stackE 中的几个示例,但没有成功。

if else in a list comprehension

if/else in Python's list comprehension?

谢谢

最佳答案

您应该在变量赋值中使用 or 语句。

gene_id = [x for x in attri_values if 'gene_id' in x] or ['NA']

这样,如果您的初始列表理解返回一个空列表,您将转到 or 的后半部分,并将列表 ['NA'] 分配给变量gene_id

关于python - 当列表值为字符串时,如何将 else 与列表理解一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43458728/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com