尝试根据列表字典中的值类型(int 或 str)打印键

Psiberian_Mushky

我正在学习访问字典键值并使用列表理解。我的任务要求我:

"Use a while loop that prints only variant names located in chromosomes that do not have numbers (e.g., X)."

我正在使用这本列表字典,其中键是变体名称,列表值中的第零个元素(冒号([0])左侧的字符集)是染色体名称,而冒号右侧 ([1]) 是它们的染色体位置,[2] 值是基因名称。

cancer_variations={"rs13283416": ["9:116539328-116539328+","ASTN2"],\
"rs17610181":["17:61590592-61590592+","NACA2"],\
"rs1569113445":["X:12906527-12906527+","TLR8TLR8-AS1"],\
"rs143083812":["7:129203569-129203569+","SMO"],\
"rs5009270":["7:112519123-112519123+","IFRD1"],\
"rs12901372":["15:67078168-67078168+","SMAD3"],\
"rs4765540":["12:124315096-124315096+","FAM101A"],\
"rs3815148":["CHR_HG2266_PATCH:107297975-107297975+","COG5"],\
"rs12982744":["19:2177194-2177194+","DOT1L"],\
"rs11842874":["13:113040195-113040195+","MCF2L"]}

我已经找到了如何根据列表中第零个元素的长度(染色体名称)打印变体名称:

for rs, info in cancer_variations.items():
    tmp_info=info[0].split(":")
    if (len(tmp_info[0])>3):
        print(rs)

但是我无法根据染色体名称类型(列表值中的第零个元素)打印键值、变体名称为此,我设计了这段代码,但我不确定如何仅在染色体名称是一种特定类型((Str) 或 (int) 时才打印布尔值)。

for rs, info in cancer_variations.items():
    tmp_info=info[0].split(":")
    if tmp_info[0] = type.str
        print(rs)

我不确定我的语法在这里没有看到什么。任何帮助将不胜感激。

安德烈·凯斯利

如果我理解正确,您想检查之前的第一部分是否:包含数字。

您可以逐个字符地迭代字符串并用于str.isnumeric()检查字符是否为数字。如果any字符是数字,则继续下一项:

cancer_variations = {
    "rs13283416": ["9:116539328-116539328+", "ASTN2"],
    "rs17610181": ["17:61590592-61590592+", "NACA2"],
    "rs1569113445": ["X:12906527-12906527+", "TLR8TLR8-AS1"],
    "rs143083812": ["7:129203569-129203569+", "SMO"],
    "rs5009270": ["7:112519123-112519123+", "IFRD1"],
    "rs12901372": ["15:67078168-67078168+", "SMAD3"],
    "rs4765540": ["12:124315096-124315096+", "FAM101A"],
    "rs3815148": ["CHR_HG2266_PATCH:107297975-107297975+", "COG5"],
    "rs12982744": ["19:2177194-2177194+", "DOT1L"],
    "rs11842874": ["13:113040195-113040195+", "MCF2L"],
}

for k, (v, *_) in cancer_variations.items():
    if not any(ch.isnumeric() for ch in v.split(":")[0]):
        print(k)

印刷:

rs1569113445

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章