2010-01-29 4 views
2

파이썬에서 목록에 여러 문자열이 있다고 가정 해 봅시다. 나는 그 크기를 모른다. 이 문자열의 2 개의 무작위 요소에 대한 연산을 수행하기 위해 루프를 실행하려면 어떻게해야합니까?한 번에리스트에서 임의의 두 요소에 대해 루프를 실행할 수 있습니까?

이 무작위 화에서 문자열의 특정 하위 집합을 선호하고 더 자주 선택하지만 여전히 선택하지 못하게 할 경우 어떻게해야합니까?

+0

2 개의 임의의 요소가 "선호하는 하위 집합"과 같은가요? 2 가지 질문을하고 있습니까? – gary

+0

그것의 일부일 수도 있습니다. 이 더 큰 무작위 요소 세트의 일부 요소가 선호 될 수 있습니다. – Chris

답변

4

random 모듈을 조사해야합니다. 예를 들어 random.choice 함수를 사용하면 시퀀스에서 임의의 요소를 선택하거나 주어진 샘플 수를 선택하는 random.sample을 선택할 수 있으므로 다른 가중치도 쉽게 계산할 수 있습니다.

+0

매우 흥미 롭습니다, 감사합니다! 라이브러리에 함수 가중치를 고려한 함수가 있습니까? – Chris

+0

'random.sample'은 각 항목을 가능한 선택 항목으로 간주합니다. 그에 따라 인구를 구성하면됩니다. – SilentGhost

+0

질문에 대해 죄송하며 도움을 주셔서 감사합니다. random.sample은 k 요소를 대체하지 않고 샘플링합니다. 이것은 내가 목록에서 제거한다고 믿게한다. (원하는 것을 원한다!) 그러나 목록이 비어있을 때까지 random.sample (population, 2)을 실행하면 무한 루프가된다. 왜 내가 가질 수 없는가? 제거 되었습니까? – Chris

0

더 나은 문제, 어떤 작업 및 어떤 요소에 초점을 맞추고 있습니까?

더 자주 선택되는 요소에 대한 문제에 대해 각 문자열에 "기회 배율"을 지정하고, 각 비교에 1과 10 사이의 숫자와 결과가 X보다 높은 경우 기회 배수를 곱합니다. 말하기 ... 5), 문자열을 선택하고 그렇지 않으면 다른 문자열을 찾습니다. 이렇게하면 더 높은 승수를 가진 문자열에 더 많은 기회가 선택됩니다.

+0

GAS가 돌연변이와 교차로 문자열을 조작하는 것과 비슷하게, 일부 바이너리 문자열에 대해 임의의 문자열 수정 (여러 가지를 실험)을 수행하려고합니다. 일부 문자열은 시간이 지남에 따라 선호도가 높아 지므로 선택 프로세스에서 선호해야합니다. 이 문자열은 클래스에 래핑되므로 승수와 같은 것을 추가해도 문제가되지 않습니다. – Chris

관련 문제