Сортировка 3 параллельного списка, который включает строки и числовые значения в Python - PullRequest
0 голосов
/ 13 ноября 2009

как сортировать, используя 3 параллельных списка массивов:

num1 = ['a', 'b', 'c,']
num2 = ['яблоко', 'груша', 'виноград']
num3 = [2.5,4.0, .68]

Я использовал 2 для операторов с последующим оператором if. Сортировка по элементам на выходе должна быть:

яблоко 2,5
б груша 4,0
с виноградом .68

к сожалению, у меня возникают проблемы с сортировкой 3-го значения num3 с использованием сортировки с заменой элементов. любые идеи

Ответы [ 2 ]

2 голосов
/ 13 ноября 2009

Поскольку вы говорите, что списки параллельны, давайте сгруппируем их в кортежи, а затем отсортируем список кортежей.

num1 = ['a','b','c']
num2 = ['apple','pear','grapes']
num3 = [2.5,4.0,.68]

lst = zip(num1, num2, num3)
lst.sort()

for x1, x2, x3 in lst:
    print x1, x2, x3,

print

Результат:

яблоко 2,5 г, груша 4,0 с, виноград 0,68

1 голос
/ 13 ноября 2009

Исходя из ваших желаемых входов и выходов, кажется, что вы не хотите никакой сортировки - просто:

num1 = ['a','b','c']
num2 = ['apple','pear','grapes']
num3 = [2.5,4.0,.68]
for item in [x for t in zip(num1, num2, num3) for x in t]:
  print item,
print

Это дает результат, который вы упоминаете - это то, что вы хотите?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...