Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将变量分配给要排序的数字_Python - Fatal编程技术网

Python 如何将变量分配给要排序的数字

Python 如何将变量分配给要排序的数字,python,Python,我刚刚了解了Python中的排序选项,并一直在尝试将其用于排序变量。有没有办法给它们一个像数字一样的值来进行排序 b1 = "bronze 1" b2 = "bronze 2" b3 = "bronze 3" s1 = "silver 1" s2 = "silver 2" s3 = "silver 3" g1 = "gold 1" g2 = "go

我刚刚了解了Python中的排序选项,并一直在尝试将其用于排序变量。有没有办法给它们一个像数字一样的值来进行排序

b1 = "bronze 1"
b2 = "bronze 2"
b3 = "bronze 3"
s1 = "silver 1"
s2 = "silver 2"
s3 = "silver 3"
g1 = "gold 1"
g2 = "gold 2"
g3 = "gold 3"
# they are in order above

print(sorted({b2, b3, b1, s1, s2, s3, g1, g2, g3}))

我想让它告诉我哪些级别是有序的。如何执行此操作?

您可以将位置参数
传递给
sorted()
函数以进行自定义排序

>>未排序=['bronze 2'、'gold 1'、'gold 2'、'bronze 1'、'silver 2'、'silver 1'、'gold 3'、'silver 3'、'bronze 3']
>>>def排序列表(\u列表):
已排序的_列表=[]
排序键=lambda s:int(s[-1])
对于[“青铜”、“银”、“金”]中的字符串:
sublist=[i表示i中的i,如果i中有字符串,则为_列表中的i]
扩展(已排序(子列表,键=排序键))
返回已排序的列表
>>>排序列表(未排序)
[‘青铜1’、‘青铜2’、‘青铜3’、‘银1’、‘银2’、‘银3’、‘金1’、‘金2’、‘金3’]
如果需要,可以使用列表理解来简化:

>>>定义排序列表(\u列表):
已排序的_列表=[]
对于[“青铜”、“银”、“金”]中的字符串:
已排序的\u list.extend(
已排序([i表示i中的i,如果i中的字符串为i],key=lambda s:int(s[-1]))
)
返回已排序的列表
>>>排序列表(未排序)
[‘青铜1’、‘青铜2’、‘青铜3’、‘银1’、‘银2’、‘银3’、‘金1’、‘金2’、‘金3’]

您希望该程序的输出结果是什么?铜牌1、铜牌2、铜牌3、银牌1、银牌2、银牌3、金牌1、金牌2、金牌3谢谢回答您的问题吗?在你的例子中,
ORDER=[b1,b2,b3,s1,s2,s3,g1,g2,g3]
当使用中的解决方案时。最好是一个字符串吗?对于这个愚蠢的问题,sry,但我如何判断它是否有效?@Pricysquirrl通过将你得到的输出与你想要的nvm的输出进行比较,它有效tysry 1最后一件事。当打印排序列表(未排序)时,我会在输出周围加上方括号。如何摆脱这些问题如果您希望遍历列表并打印每个项目,您可以使用
for
循环:
for I in sort\u list(unsorted):
,然后在下一个块上,
print(I)