개별 리스트를 하나로 합치기
조회수 390회
lang_type=['ko','en','es','vi']
text_src = translator.translate(user_text).src
if text_src==lang_type[0]:
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[1]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[2]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text)
elif text_src==lang_type[1]:
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[0]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[2]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text)
elif text_src==lang_type[2]:
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[0]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[1]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[3]).text)
else:
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[0]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[1]).text)
telegram.Bot(TelegramToken).send_message(user_id,translator.translate(user_text, dest=lang_type[2]).text)
이 코드를 프린트 했을 때 메시지를 개별적으로 출력하는데 이 개별 메세지들을 하나의 메세지에 다 출력되게 하는 방법을 알려주실 수 있으실까요?
단순히 [1:3] 같이 시도해봤는데 작동이 안되었습니다.
2 답변
-
엽토군님이 설명한 걸 구현해 본 코드입니다. 테스트는 안해봤어요. 참고하세요.
text_src = translator.translate(user_text).src lang_type_ = [ lang for lang in lang_type if lang != text_src ] # 1 filter messages = [ translator.translate(user_text, dest = lang).text for lang in lang_type_ ] # 2 mapping joined_message = ' '.join(messages) #3 join telegram.Bot(TelegramToken).send_message(user_id, joined_message) # 4 send
-
그러니까 사용자가 입력한 언어가 한국어면 그걸 한국어로는 번역하지 않고 나머지 언어들(영어, 스페인어, 베트남어)로 번역해서 그걸 한번에 다 보여주시려는 거죠?
순회 가능한 자료에 관해 배우셨다면, 다음 설명만으로도 충분할 거 같습니다.
lang_type
을 필터합니다.text_src
가 아닌 것만 남기면 됩니다.lang_type
을 맵핑합니다.lang_type
안의 각 문자열들을lang
이라고 했을 때, 그것들 각각을translator.translate(user_text, lang).text
로 변환해주면 되겠지요.- 2에서 얻은 리스트를 join으로 합쳐줍니다.
- 3을 텔레그램 봇으로 전달합니다.
관련참고자료:
여기서부터는 직접 해보세요! 행운을 빕니다.
댓글 입력