Создание функции для объединения строк на основе len(массива)

Я пытаюсь объединить строку для отправки сообщения через python> telegram Мой план состоит в том, чтобы функция была модульной. Сначала он импортирует строки из файла .txt и на основе этого количества строк создает два разных массива. array1[] и array2[], array1 получит значения списка в виде строк, а array2 получит сгенерированную пользователем информацию, чтобы дополнить то, что хранится в той же позиции, что и способ определения различий в array1[pos], как поставить таким образом:

while (k<len(list)):

array2[k]= str(input(array1[k]+": "))

k+=1

Я хотел создать одну строку для отправки в одном сообщении, например, таким образом, чтобы весь мой список находился внутри одной строки.

string1 = array1[pos]+": "+array2[pos]+"\n"

Я пытался использовать while для сравнения len, но я снова и снова вспоминал и переписывал свою собственную строку.

Этот вопрос очень трудно понять. Можете ли вы быть более конкретным в отношении того, что вы пытаетесь сделать? Где вы загружаете файл? Является ли файл списком? Как должен выглядеть ваш файл?

spen.smith 22.03.2022 02:24

Я постараюсь сделать это кратко.

nickksoares 25.03.2022 23:22

Итак, сначала я импортирую несколько строк, содержащихся в файле TXT. Из каждой отдельной строки я создаю «массив» с атрибутами и пустой массив с соответствующими позициями, поэтому «ArrayWithoutAnything[0]» нужно будет объединить с «ArrayWithSomething[0]» и так далее. Однако, поскольку мне нужно отправить конкатенированную строку через сообщение Telegram, мне нужно будет создать формулу, чтобы каждая позиция внутри массива объединялась соответствующим образом независимо, если у меня есть [n] позиций.

nickksoares 25.03.2022 23:28

Спасибо, Ник. Я опубликую что-нибудь, дайте мне знать, если это поможет.

spen.smith 27.03.2022 00:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
4
44
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

list_of_strings_from_txt = ["A","B","C"]
modified_list = [f"{w}: {input(f'{w}:')}" for w in list_of_strings_from_txt]

Наверное? может быть?

Ответ принят как подходящий

Похоже, что вы ищете один список, который поступает непосредственно из вашего текстового файла. Есть много способов сделать это, но вы, скорее всего, не захотите итеративно создавать список с позицией индекса. Я бы сказал, просто добавляйте элементы в свой список.

Принятый ответ на этот сообщение имеет хорошую ссылку, которая в основном заключается в следующем:

import csv

with open('filename.csv', 'r') as fd:
    reader = csv.reader(fd)
    for row in reader:
        # do something

Что в вашем случае будет означать что-то вроде этого:

import csv

actual_text_list = []
with open('filename.csv', 'r') as fd:
    reader = csv.reader(fd)
    for row in reader:
        actual_text_list.append(row)

user_input_list = []
for actual_text in actual_text_list:
    the_users_input = input(f'What is your response to {actual_text}? ')    
    user_input_list.append(the_users_input)

Это создает два списка, один с фактическим текстом, а другой с вводом другого. Я думаю, это то, что вы пытаетесь сделать.


Другой способ, если список в вашем текстовом файле не будет иметь дубликатов, вы можете рассмотреть возможность использования dict, который является просто словарем, хранилищем данных ключ-значение. Вы бы сделали keyactual_text из файла, а valueuser_input. Еще одна техника, вы можете сделать list из lists.

import csv

actual_text_list = []
with open('filename.csv', 'r') as fd:
    reader = csv.reader(fd)
    for row in reader:
        actual_text_list.append(row)

dictionary = dict()
for actual_text in actual_text_list:
    the_users_input = input(f'What is your response to {actual_text}? ')    
    dictionary[actual_text] = the_users_input

Затем вы можете использовать эти данные следующим образом:

for actual_text, user_input in dictionary.items():
    print(f'In response to {actual_text}, you specified {user_input}.')

Думаю, я попробую использовать csv. Как вы упомянули в последний раз, дубликатов нет. Это всегда будут буквы + цифры, чтобы назначить несколько транспортных средств с их «позывным», чтобы говорить. Итак, у меня есть UR 11199 и UR 11198, я могу использовать пробелы внутри dict? Может быть нет.

nickksoares 28.03.2022 21:44

Но в первой части я думаю о способах реализации с использованием CSV, дело в том, что я не тот, кто заполняет необходимую информацию, поэтому я хотел бы быть максимально антитупым.

nickksoares 28.03.2022 21:45

Другие вопросы по теме

Похожие вопросы

Получите количество идентификаторов, которые имеют одинаковую комбинацию различных значений в столбце «местоположения»
Python 3 зацикливается с помощью if else elif
Как передать переменные из одной функции в другую и использовать их в условных операторах в python?
Pandas: фильтровать столбец по значению от применения функции к другому столбцу?
Как разбить один строковый элемент в списке на два в Python?
Pandas dataframe в словарь python с соответствующими именами столбцов, хранящимися в списке как значения dict
IndexError: индекс списка вне диапазона печатает только каждую вторую строку в python
Добавление словаря в строку в Pandas DataFrame с использованием concat в Python 3.10
Почему мой код Python ppadb не подключается к Memu? Из строки cmd можно добавить adb в Memu. Код Bluestacks adb python работает, но не Memu
Объединение двух DataFrames с разными индексами столбцов и строк, обновляющими существующие значения - Pandas