2010-07-16 5 views
2
octopusList = {"first": ["red", "white"], 
      "second": ["green", "blue", "red"], 
      "third": ["green", "blue", "red"]} 
squidList = ["first", "second", "third"] 

for i in range(1): 
    squid = random.choice(squidList) 
    octopus = random.choice(octopusList[squid]) 

print squid + " " + octopus 

누구든지 JavaScript로 작성하는 데 도움이 될 수 있습니까? 필자는 대부분의 프로그램을 JavaScript로 작성했지만, JavaScript로 작성된 목록으로 목록을 가져 오는 방법은 특히 혼란 스럽습니다. 나는 프로그래밍에 익숙하지 않으므로 내 질문에 답해 주셔서 감사합니다. : DPython을 JavaScript - 목록으로 변환 하시겠습니까?

+0

+1 cephalapods – Cole

답변

4

우선, 나는 for i in range(1): 라인이 쓸모 없다고 말하고 싶습니다. 내용을 한 번만 실행하고 i을 사용하지 않습니다.

어쨌든 게시 한 코드는 JavaScript의 몇 가지 조작으로 잘 작동합니다. 먼저 random.choice을 다시 구현해야합니다. 당신은이를 사용할 수 있습니다

function randomChoice(list) { 
    return list[Math.floor(Math.random()*list.length)]; 
} 

이제 그 후, 그것은 간단합니다

var octopusList = { 
    "first": ["red", "white"], 
    "second": ["green", "blue", "red"], 
    "third": ["green", "blue", "red"] 
}; 
var squidList = ["first", "second", "third"]; 

var squid = randomChoice(squidList); 
var octopus = randomChoice(octopusList[squid]); 

// You could use alert instead of console.log if you want. 
console.log(squid + " " + octopus); 
+0

'Math.random()'은 1을 반환 할 수 있습니다.이 경우'randomChoice()'는 잘못된 색인에 액세스합니다. – orip

+0

@orip : [MDN은 'Math.random'이 1을 반환 할 수 없다'고 말합니다. (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Math/random) : "부동 소수점, 의사 랜덤을 반환합니다. 0 (포함) 범위에서 [0, 1] 범위의 숫자, ** (포함하지 않음) **는 제외하고 원하는 범위로 확장 할 수 있습니다. " – icktoofay

+0

고마워. 나는 – orip

1
js> octopusList = {"first": ["red", "white"], 
       "second": ["green", "blue", "red"], 
       "third": ["green", "blue", "red"]} 

js> squidList = ["first", "second", "third"] 
first,second,third 

js> squid = squidList[Math.floor(Math.random() * squidList.length)] 
third 

js> oct_squid = octopusList[squid] 
green,blue,red 

js> octopus = oct_squid[Math.floor(Math.random() * oct_squid.length)] 
blue 
1

... 구체적으로 어떻게 저를 가지고 자바 스크립트로 작성된 거기에 목록과 목록을 얻으려면 어찌할 바를 모르는.

당신은 (또한)과 같이 자바 스크립트에서의 목록에서 목록을 만들 수 있습니다

: 때를 코드

o = { "first" : ["red","green"], 
     "second": ["blue","white"]} 

자바 스크립트

에 당신은 실제로 만들

var listWithList = [["a,b,c"],["d,"e","f"], ["h","i","j"]] 

때문에 firstsecond의 두 가지 속성을 가진 JavaScript 객체는 값이 각각 to 요소를 갖는 목록 (또는 배열)입니다. 당신은 당신이 그 (것)들에게 검색이 구문을 사용할 수있는 객체 즉 자바 스크립트 이래로

대답 icktoofay에서 볼 수 있듯이이 잘 작동

listOne = o.first; 
listTwo = o.second; 
+0

을 수정했다. 이미이 답변이 JavaScript로 번역되어 있다면이 답변이 지향된다는 점에 유의할 가치가있다. 파이썬의'{ "a": "b", ...}'구문은 일반 객체가 아니라 사전을 지정합니다. 또한, 파이썬에서 원소에 접근하기 위해서는'myList [ "first"]'와'myList [ "second"]'등등을 사용하면된다. 마지막으로'var '부분. – icktoofay

+0

:) :) yeap,이 답변의 모든 코드는 javascript이기 때문에 : P는 파이썬이 아닙니다 : P 나는 그것을 업데이트하고 있습니다. – OscarRyz

1

(JSON 형식으로 파이썬에서 데이터 구조를 변환하는 json 모듈을 사용하는 것을 고려 어떤 유효한 자바 스크립트입니다) - 그리고 당신이 필요하면 viceversa. 예를 들어 보시다시피

>>> octopusList = {"first": ["red", "white"], 
...    "second": ["green", "blue", "red"], 
...    "third": ["green", "blue", "red"]} 
>>> print json.dumps(octopusList) 
{"second": ["green", "blue", "red"], "third": ["green", "blue", "red"], "first": ["red", "white"]} 
>>> 

가,이 경우에는 "번역"그냥 정체성 (사전 항목의 순서의 변화이다 [파이썬]에서]/객체 [] 자바 스크립트 [] 속성 Python의 dicts도 JS의 객체도 "주문"에 대한 개념이 없기 때문에 무관하다.

관련 문제