Python如何同个变量多个属性的操作 ?

发布于 2022-08-25 11:52:37 字数 147 浏览 42 评论 0

题干: 若有如下结构的内容: (格式: 元素序号, 变量值, 状态)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

北方。的韩爷 2022-09-01 11:52:37

问1:

def testa():
l = [(1, 25, 'good'),
     (2, -7, 'bad'),
     (3, 5, 'good'),
     (4, 98, 'good')]
for x, y, z in sorted(l, key=lambda x:x[1]):
    print z

问2:

import math
def testb(xi):
l = [(1, 98, 'good'),
     (2, 4, 'bad'),
     (3, 9, 'good')]
# key值=开方后加系数?
for x, y, z in sorted(l, key=lambda x:(math.sqrt(x[1])+xi)):
    print z

testb(3)
偏闹i 2022-09-01 11:52:37
from operator import itemgetter

def pai_xu(xs):
    return sorted(xs, key=itemgetter(1))

def di_san_ge(xs):        
    return [x[2] for x in xs]

def hui_da(xs):
    return di_san_ge(pai_xu(xs))

print(hui_da([(1, 25, 'good'), (2, -7, 'bad'),
              (3, 5, 'good'), (4, 98, 'good')])) 
# => ['bad', 'good', 'good', 'good']
心欲静而疯不止 2022-09-01 11:52:37

如果第二列(变量值)是唯一的,可以把上面内容存在字典里,变量值作为key,排序后直接读状态(value)值。

冬天旳寂寞 2022-09-01 11:52:37

感觉应该类比人的思维过程,不知道序号在这里有什么用,或者你可以把整个列表存在字典里,key是第二列,value是第一列和第三列。然后根据key排序,输出时候调整一下。不知道有没有别的好的办法。

痴骨ら 2022-09-01 11:52:37

filter函数

如:filter(lambda d:d==***,data)[0][2]

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文