2017-03-16 37 views
-2

是否可以按数值大小的顺序显示一组变量而不诉诸列表? (关于列表大小顺序有很多问题,但没有涉及以这种方式显示变量) 按大小顺序显示变量(数字)

variable1= random.randint(1,999) 
variable2= random.randint(1,999) 
variable3= random.randint(1,999) 

那么,即使我不知道尺寸,按照尺寸顺序打印这些东西是否有效?

+1

不,没有任何明显的方法可以按照排序顺序打印某些变量,而不需要使用**列表** – ZdaR

+0

您可以使用一系列嵌套的if语句来执行此操作,但这很快就会失控,针对超过约3个变量。你有什么反对将它们列入清单并整理它? – martineau

+0

所以你想打印一个已排序的数字列表,但你不想先排序数字? – csmckelvey

回答

1

你可以if语句使用条件。

可能不是最有效的方式做到这一点,但:

x = 1 
y = 2 
z = 3 
if z > y and z > x: 
    print z 
#and so on 

我想你明白我的打算了。这样做可能并不理想,只是想到了什么。

+0

我不认为这是OP正在讨论的大小。这是存储在变量中的数值(如问题中所述)。 – martineau

+1

@martineau重读之后我认为你是对的。我将编辑,因为它现在更容易。 –

3

是的,通过一系列if ... elif语句,每次添加值/变量时复杂度都会增加。

为什么你不想使用列表?这会更简单。

如果需要真想使用变量,那么如何对这种做法:

import random 

variable1 = random.randint(1,999) 
variable2 = random.randint(1,999) 
variable3 = random.randint(1,999) 

var_name_list = [] 
var_name_list.append('variable1') 
var_name_list.append('variable2') 
var_name_list.append('variable3') 

for value in sorted([ eval(var_name) for var_name in var_name_list ]): 
    print(value) 
+0

我看到是否有比使用清单更容易的方法 – Someone

+0

有没有..我看不到有可能! – Attie

+0

我不确定,但后来我不知道所有的东西,所以我决定检查(因为这样的事情不存在),我找不到任何文件反驳或证明它 – Someone