例如:
[a,c,b]
我想对这些数字进行排序,并以相同的顺序获取变量列表,例如输出将类似于[a,c,b]
编辑:我想保留变量名叠加在变量值上,即我想要一个按变量值排序但仅包含变量名的列表,例如因此它们会根据其值的排序输出func switchColor(data: UInt32) {
guard let contents = backgroundGeometry.firstMaterial?.diffuse.contents else {
fatalError("First material is nil") // If this really can be empty, just replace this with return
}
switch data {
case 1..<200:
contents = UIColor(red: 242/255, green: 90/255, blue: 90/255, alpha: 1)
case 200..<400:
contents = UIColor(red: 252/255, green: 162/255, blue: 115/255, alpha: 1)
case 400..<600:
contents = UIColor(red: 244/255, green: 235/255, blue: 99/255, alpha: 1)
case 600..<800:
contents = UIColor(red: 110/255, green: 195/255, blue: 175/255, alpha: 1)
case 800..<1000:
contents = UIColor(red: 91/255, green: 118/255, blue: 211/255, alpha: 1)
default:
contents = .green
}
}
。
答案 0 :(得分:1)
根据我的经验,最好将变量名视为不存在的 1 。它们只是为程序员提供了一种手段来访问变量名所指的当前值。
我强烈推荐Ned Batchelders blog post on "Facts and myths about Python names and values",其中包含许多有关如何思考名称和值的有用建议-即使其中大部分仅与问题相关。
似乎您真正想要的是名称(字符串)到值(整数)的映射。因此,我将使用以字符串为键,以整数为值的字典:
d = {'a': 1, 'b': 3, 'c': 2}
然后,如果要获取按值排序的名称列表,可以使用:
>>> [key for (key, value) in sorted(d.items(), key=lambda key_value: key_value[1])]
['a', 'c', 'b']
>>> sorted(d.items(), key=lambda key_value: key_value[1])
[('a', 1), ('c', 2), ('b', 3)]
1 变量名确实存在(作为字符串)在globals
或locals
中-但它们包含的名称可能比您(显式)使用的名称多:
>>> a = 1
>>> globals()
{'__name__': '__main__', '__doc__': None, ... 'a': 1}
>>> globals()['a']
1
>>> a = 2
>>> globals()['a']
2
但是,除了在高度专业化的情况下,访问globals
和locals
确实是一种不好的代码味道。 尽可能避免使用globals
和locals
!
答案 1 :(得分:-1)
a = 1
b = 3
c = 2
numbers = [a, b, 4, c]
# Sorting list of Integers in ascending
numbers.sort()
print(numbers)
>>>[1,2,3,4]