#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] работает без проблем.