佚名通过本文主要向大家介绍了Python如何同个变量多个属性的操作?等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:Python如何同个变量多个属性的操作 ?
描述:
解决方案1:
描述:
题干: 若有如下结构的内容: (格式: 元素序号, 变量值, 状态)
解决方案1:
filter函数
如:filter(lambda d:d==***,data)[0][2]
解决方案2:感觉应该类比人的思维过程,不知道序号在这里有什么用,或者你可以把整个列表存在字典里,key是第二列,value是第一列和第三列。然后根据key排序,输出时候调整一下。不知道有没有别的好的办法。
解决方案3:如果第二列(变量值)是唯一的,可以把上面内容存在字典里,变量值作为key,排序后直接读状态(value)值。
解决方案4: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']
解决方案5:问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)