먼저, 파이썬에 새로 온 사람, 그래서 내가 뭔가를 간과 한 경우 나는 사과,하지만 난의 키가 다른 목록에 제공되는 목록의 사전을 만들 수 dict.fromkeys
(또는 비슷한)를 사용하고 싶습니다. 좀 타이밍 테스트를 수행하고있어 키가 입력 변수 목록이 실행을위한 시간을 포함 할 수 있도록 내가 좋아하는 것 :dict.fromkeys를 사용하여 각 키에 고유 한 값을 만드는 방법은 무엇입니까?
def benchmark(input):
...
return time_taken
runs = 10
inputs = (1, 2, 3, 5, 8, 13, 21, 34, 55)
results = dict.fromkeys(inputs, [])
for run in range(0, runs):
for i in inputs:
results[i].append(benchmark(i))
내가 데 문제가 그 모든 키에 사전은 동일한 목록을 공유하는 것처럼 보이며 각 실행은 간단히 그 목록에 추가됩니다. fromkeys
을 사용하여 각 키에 고유 한 빈 목록을 생성하는 방법이 있습니까? 그렇지 않은 경우 결과 사전을 직접 생성하지 않고이 작업을 수행 할 다른 방법이 있습니까?
최고, 잘 작동 : 내가 먼저 "맞춤법 교정기를 작성하는 방법", 피터 노르 빅의 그것에 대해 들었어요! 감사! (사용하기 전에 빈 목록을 생성 할 수 있었으면 좋겠지 만) –
불가능합니다. [] 또는 list()를 호출하면 객체가 만들어지고 변수가 바인딩됩니다. 예를 들어이 x = [[]] * 10을 확인하십시오. x [0] .append ('test'); print x – vartec
자, 모든 목록이 인스턴스화 된 대안이 있습니다. – vartec