为了账号安全,请及时绑定邮箱和手机立即绑定

尝试创建一个函数,根据字典中的“整数”值返回“字符串”键

尝试创建一个函数,根据字典中的“整数”值返回“字符串”键

哆啦的时光机 2023-07-05 16:27:58
data = Sig_List.readlines()N, E = [], []for line in data:    values = [str(s) for s in line.split()]    N.append(values[0])    E.append(values[1])    Sig1 = dict(zip(N,E))    Sig1={'Atg4a': '1.0241564267288767', 'Mast2': '-1.0014505579938486',...}       def up1(Sig1):    for key, value in Sig1.items():        if value >0:            x=list(key)    up1(Sig1)尝试输入带有 FC 值的基因名称列表,然后生成向上向下基因的子列表,这些子列表可以组合起来在不同的实验中制作维恩图。无法定义一个条件函数,该函数仅根据基因名称是向上还是向下返回基因名称。任何帮助或建议将不胜感激。
查看完整描述

2 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

让我们用字典理解来做:


我们将循环字典键和值并按值条件进行过滤。


Sig_List = open('file.txt')

data = Sig_List.readlines()

N, E = [], []

for line in data:

    values = [str(s) for s in line.split()]

    N.append(values[0])

    E.append(values[1])


    Sig1 = dict(zip(N, E))

    Sig1 = {'Atg4a': '1.0241564267288767', 'Mast2': '-1.0014505579938486'}



def up1(Sig1):

    return [key for key, value in Sig1.items() if float(value) > 0]


def down1(Sig1):

    return [key for key, value in Sig1.items() if float(value) < 0]


ups     = up1(Sig1)

print(f'Ups: {ups}')


downs   = down1(Sig1)

print(f'Downs: {downs}')


这些函数可以集成到一个函数中,因此我们保存列表上的第二次迭代:


def diveide_by_directon(Sig1):

    ups     = []

    downs   = []

    for key, value in Sig1.items():

        if 0 < float(value):

            ups.append(key)

        else:

            downs.append(key)

    return ups, downs


ups, downs     = diveide_by_directon(Sig1)

print(f'Ups: {ups}')

print(f'Downs: {downs}')


查看完整回答
反对 回复 2023-07-05
?
湖上湖

TA贡献2003条经验 获得超2个赞

你可以用字典理解来完成这一切:


data = Sig_List.readlines()

Sig1 = {

    str(s)[0], str(s)[1] for s in line.split()

    for line in data

}


ups = {k, v for k, v in Sig1 if int(v) > 0}

downs = {k, v for k, v in Sig1 if int(v) < 0}


查看完整回答
反对 回复 2023-07-05
  • 2 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信