创建一个函数来连接基于 len(array) 的字符串

Creating a function to concatenate strings based on len(array)

我正在尝试连接一个字符串以通过 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,但我一直在一次又一次地回忆和重写我自己的字符串。

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

我猜?也许吧?

看起来您正在寻找的是有一个直接来自您的文本文件的列表。有很多方法可以做到这一点,但您很可能不想使用索引位置迭代创建列表。我会说只是将项目附加到您的列表中。

关于这个post接受的答案有很好的参考,基本上是这样的:

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,它只是一个字典,一个 key-value 数据存储。您将从文件中将 key 设为 actual_text,并将 value 设为 user_input。另一种技术,你可以制作 lists.

list
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}.')