저는 파이썬을 사용하여 웹 API 세트를 테스트하고 있습니다. 언어는 아직 학습 중입니다. 나는 문자열 (대리점의 이름)을 취하고 임의의 수의 문자 다음에 끝을 잘라냅니다. 그런 다음 문자열 끝에 문자 (와일드 카드)를 추가합니다. 이 수정 된 문자열은 다음 딜러의 이름을 검색하고 와일드 카드를 포함 할 수있는 API로 전달됩니다. 나는 아래 코드를 가지고 있지만 길어 보인다. 이 문제에 접근하기위한 더 깨끗한 방법이나 더 평범한 방법이 있습니까? 잠재적으로 문자열에서 목록으로, 문자열로 변환하지 않고 이것을 수행하는 방법?파이썬은 목록으로 변환하는 것보다 문자열을 분할하는 더 좋은 방법이 있습니까?
split_name = list(name) #turns name string into list
rand = random.randint(6,(len(split_name)-1)) #generates random number
split_name[rand:len(split_name)] = [] #breaks of end part of name list
srch_name = ''.join(split_name) #stringifies list
#Send request
rqst = requests.get(name_srch %(key, (srch_name + '*'))) #this adds * and sends the request
이름이 이전과 같은 몇 가지 문자열로 스크립트에 정의 된 "데이브 및 청구서 장비 판매 및 서비스, INC는" 나는 2.7
원래 답변에 대한 응답으로'string.split()'이'list (string)'보다 약 두 배 빠릅니다. – 2rs2ts
@ 2rs2ts :'.split()'는 완전히 다른 것을 *합니다. –
감사합니다 Martijn,이게 더 좋은 해결책입니다. 어떤 점에서 나는 partialword * partialword를 찾아야한다. 그 방법은 내 코드보다 훨씬 더 쉽게 표시됩니다 (여기에 붙여 넣지는 않겠지 만 끔찍한 것처럼 보입니다). 'search_name = name [: rand1] + "*"+ name [rand2 :] " 그 런즈는 적절히 계산됩니다. @ 2rs2ts, 나는 'string.split()'사용에 대해 생각해 보았지만 전체 단어 사이에만 와일드 카드를 삽입 할 필요는 없었습니다. 호기심에서 왜 2 배 빠를까요? 더 작은 목록을 만들니까? – user2616239