печать элемента массива (python)

#python #arrays #printing

#python #массивы #печать

Вопрос:

Есть два списка / массива, и я хочу назначить один за другим.

 import Mybench
process = []
benchmarks = options.benchmark.split(',')
for bench_name in benchmarks:
   process.append(getattr(Mybench, bench_name))
  

Предположим, что также создан другой список (процессоры). Теперь я хочу сделать это:

 i = 0
for i, cpu in cpus:
   print "cpu", i, "assigned to ", process[i]
   cpu.workload = process[i]
   i = i 1
  

Однако в выходных данных я вижу:

 cpu 0 assigned to  <orphan LiveProcess>
  

LiveProcess() возвращается из Mybench.
Как я могу это исправить?

Ответ №1:

 for i, cpu in enumerate(cpus):
   print "cpu", i, "assigned to ", process[i]
   cpu.workload = process[i]
  

Комментарии:

1. cpu.workload = process[i] Ошибка атрибута: объект ‘tuple’ не имеет атрибута ‘workload’

2. @mahmood Что такое cpu ? можете ли вы привести пример этого?

3. Я этого не писал. Это часть исходного кода программы. np = options.num_cpus ;;; cpus = [DerivO3CPU(cpu_id = i, clock= ‘1.0GHz’) для i в xrange(np)]

4. @mahmood кажется, что это a tuple , тогда вы не можете написать cpu.workload

5. что вы тогда порекомендуете? С этим проблем нет. Я имею в виду, что cpu.workload=process[i] работает без проблем.