문자열 목록 (예 : 'blah 1', 'blah 2' 'xyz fg', 'xyz penguin')이있는 경우 문자열의 고유 시작 위치를 찾는 가장 좋은 방법은 무엇입니까 ('xyz' 이런 경우에 ')? 문자열의 시작은 여러 단어가 될 수 있습니다. 당신은 문자열의 독특한 첫 번째 단어 (단어를 공백으로 구분되는)를 의미하는 경우고유 한 문자열 시작을 찾는 방법은 무엇입니까?
답변
이는 다음과 같습니다
arr=['blah 1', 'blah 2' 'xyz fg','xyz penguin']
unique=list(set([x.split(' ')[0] for x in arr]))
귀하의 질문은 혼란, 당신이 정말 원하는 것을 명확하지 않다있다. 그래서 나는 세 가지 대답을주고 그들 중 하나가 적어도 부분적으로 당신의 질문에 대답하기를 바랍니다.
문자열의 주어진 목록의 모든 고유의 접두사를 얻으려면, 당신은 할 수 있습니다 :
>>> l = ['blah 1', 'blah 2', 'xyz fg', 'xyz penguin'] >>> set(s[:i] for s in l for i in range(len(s) + 1)) {'', 'xyz pe', 'xyz penguin', 'b', 'xyz fg', 'xyz peng', 'xyz pengui', 'bl', 'blah 2', 'blah 1', 'blah', 'xyz f', 'xy', 'xyz pengu', 'xyz p', 'x', 'blah ', 'xyz pen', 'bla', 'xyz', 'xyz '}
이 코드는리스트에있는 모든 문자열의 모든 초기 slices을 생성하고
set
이러한 전달 중복을 제거합니다.- 이 전체 문자열에 비해 시퀀스 작은 모든 큰 초기 단어를 얻으려면, 당신은 함께 갈 수 :이 코드는 splitting 설정 만듭니다
- , 전체 문자열을 고려하지 않고 모든 고유의 초기 단어 시퀀스를 얻기 위해, 당신은 갈 수에 대한 :
공백에>>> l = ['a b', 'a c', 'a b c', 'b c'] >>> set(' '.join(w[:i]) for s in l for w in (s.split(),) for i in range(len(w))) {'', 'a', 'b', 'a b'}
이 코드 splits 각 단어와 concatenates 모든 초기 가장 큰 것을 제외한 결과 목록의 조각. 이 코드에는 함정이 있습니다. 탭을 공백으로 변환하십시오. 이것은 귀하의 경우에 문제가 될 수도 있고 아닐 수도 있습니다.
>>> l = ['a b', 'a c', 'a b c', 'b c']
>>> set(s.rsplit(' ', 1)[0] for s in l)
{'a', 'a b', 'b'}
모든 오른쪽 공간에서 문자열, 사용 가능한 경우 (그렇지 않으면 while 문자열 은이됩니다. 한편
downvote에 감사드립니다. 정교한 케어? – Stephan202
+1 (신비한 질문에 대한 좋은 답처럼 보입니다) – robince
- 1. Access에서 고유 한 문자열을 찾는 방법은 무엇입니까?
- 2. 테이블에있는 모든 고유 한 값 쌍을 찾는 방법은 무엇입니까?
- 3. 목록에 고유 한 요소가 포함되도록하는 방법은 무엇입니까?
- 4. .NET에서 고유 한 스레드마다 고유 한 난수를 생성하는 방법은 무엇입니까?
- 5. mysql에서 고유 한 의존성을 만드는 방법은 무엇입니까?
- 6. 레코드를 식별하기위한 고유 한 임의 문자열 생성
- 7. 두 문자열 간의 차이점을 찾는 방법은 무엇입니까?
- 8. 문자열 배열의 길이를 찾는 방법은 무엇입니까?
- 9. 필드에서 문자열 길이를 찾는 방법은 무엇입니까?
- 10. 문자열 텍스트에서 URL을 찾는 좋은 방법은 무엇입니까?
- 11. 고유 한 문자열을 고유 한 정수로 변환
- 12. mysql에서 고유 한 열을 계산하는 방법은 무엇입니까?
- 13. 이미지에 고유 한 이름을 할당하는 방법은 무엇입니까?
- 14. 가장 효율적인 방법 ... 고유 한 무작위 문자열
- 15. Android : 파일 이름에 고유 한 문자열 만들기
- 16. C#의 고유 한 문자열 집합
- 17. Fluent NHibernate가있는 고유 한 문자열 테이블
- 18. 고유 한 문자열 아이폰 SDK 3.0 만들기
- 19. 데이터 저장에 사용되는 고유 한 문자열 만들기
- 20. hit.normal에서 충돌 한 쪽을 찾는 방법은 무엇입니까?
- 21. 클릭 한 요소의 위치를 찾는 방법은 무엇입니까?
- 22. 플래시 장치의 고유 일련 번호를 찾는 방법은 무엇입니까?
- 23. 스프링 콩 시작을 지연시키는 방법은 무엇입니까?
- 24. weblogic 서버 시작을 결정하는 방법은 무엇입니까?
- 25. 찾는 문자열
- 26. LINQ에서 2 개의 테이블을 결합하는 고유 항목을 찾는 방법은 무엇입니까?
- 27. 부분적으로 고유 한/고유 한 행을 반환합니다.
- 28. 고유 한 대 오라클의 고유 한 키워드
- 29. '고유 한 키'또는 '고유 한 키'색인
- 30. MySQL 프로 시저에서 고유 한 임시 테이블을 만드는 방법은 무엇입니까?
문자열의 시작은 여러 단어가 될 수 있으므로 * "blah 2"는 개수가 1 인 문자열 시작입니다. 마찬가지로 "b"는 개수가 2 인 문자열 시작입니다. 더 정확해야합니다 문자열 시작에 대한 정의. –
시작 부분을 끝내기위한 조건이 없으면이 질문에 답할 수 없습니다. 다중 단어 시작 부분이 언제 끝나는 지 어떻게 결정합니까? –
- 목록에 'blat'이 포함되어 있으면 출력물을 원하는 내용은 무엇입니까? 'bla'와 'blah'? 그냥 'bla'? 그냥 'ㅋㅋ'? 왜 'b', 'bl', 'bla'도 아닌 첫 번째 이유는 무엇입니까? 다른 사람들이 요구 사항을 강화할 필요가 있다고 말한 것처럼 – robince