Если ваш DICTIONARY
не является слишком большим (т.е. может соответствовать вашей памяти):
N = [19,85,45,14]
with open("DICTIONARY", "r") as f:
words = f.readlines()
my_sentence = " ".join([words[i].strip() for i in N])
EDIT: небольшое уточнение, исходное сообщение не использовать пространство, чтобы присоединиться к словам, я изменил совместное де включить его. Вы также можете использовать ",".join(...)
, если вам нужно отделить слова запятой или любым другим разделителем, который вам может понадобиться. Кроме того, имейте в виду, что этот код использует нуля индекс строки, поэтому первая строка Вашего DICTIONARY
будет 0, то второй будет 1, и т.д.
UPDATE:: Если ваш словарь слишком велик для вашего или вы просто хотите потреблять как можно меньше памяти (если это так, почему вы в первую очередь отправляетесь на Python?;)), вы можете «извлечь» слова, которые вас интересуют:
N = [19, 85, 45, 14]
words = {}
word_indexes = set(N)
counter = 0
with open("DICTIONARY", "r") as f:
for line in f:
if counter in word_indexes:
words[counter] = line.strip()
counter += 1
my_sentence = " ".join([words[i] for i in N])
мне нужно тянуть линии 19, 85, 45 и 14, а затем распечатать их в одной строке – user7451333