提问人: 提问时间:1/7/2023 最后编辑:hc_dev 更新时间:1/7/2023 访问量:141
如何将控制台的输入行读取到多个值的列表中?
How to read input line from console into list of multiple values?
问:
法典
我想输入多个值(见下面的注释行), 因此,用户可以轻松搜索多个值,并且循环可以找到这些值。
如何将输入更改为文本列表,以便程序检查所有内容?
像这样:每行 1 个怎么样 - 从 ?
我想我得到的结果是错误的,是帖子 URL 的实际 id。
我想知道在 .
话虽如此,应该给出答案:5 和 9,而不是 5 和 6。what_to_look = ['james','tom'].split()
file.txt
post_id
file.txt
"james kim"
title = ['james','tom','kim']
post_ids = [5,6,9]
what_to_look = input('Enter Name: ') # convert this like (what_to_look = ['james','tom'] )
# search for the values
if what_to_look in title:
position = title.index(what_to_look)
post_id = post_ids[position]
print('found', post_id)
else:
print('not found')
如何将输入转换为列表,例如?('james','kim')
答:
0赞
Jib
1/7/2023
#1
Python 字符串提供了根据指定的分隔符将其分解为列表的函数。.split
例如,将打破每个空格。names = what_to_look.split(" ")
what_to_look
为了进一步参考,这里是文档拆分的链接
1赞
Jishnu
1/7/2023
#2
我认为您想将值列表作为输入,您可以使用以下代码输入它,例如
what_to_look = input().split()
然后,您可以在单行中以空格分隔文本的形式输入值。希望对您有所帮助!
1赞
Kakedis
1/7/2023
#3
你可以通过split()来实现它:
title = ['james','tom','kim']
post_ids = [5,6,9]
what_to_look = input('Enter Name: ')
您可以将字符串值拆分为一个列表;
entered_list = what_to_look.split()
这将从输入的字符串创建一个列表。
编辑:建议您按照@hc_dev的建议对输入的值使用分隔符。这将创造更好的用户体验并带来更好的搜索结果。
评论
0赞
hc_dev
1/7/2023
最小的完整可验证示例:拆分列表项,然后遍历列表项以查找每个列表项。
1赞
hc_dev
1/7/2023
“拆分字符串值” - 用什么分隔符?输入和输出的简短示例会有所帮助 - 用户也要正确输入名称。input('Enter one or multiple names separated by :')
1赞
Arifa Chan
1/7/2023
#4
使用并迭代拆分的输入,并获取其索引(如果该输入在列表中):split()
what_to_look
title
title = ['james','tom','kim']
post_ids = [5,6,9]
what_to_look = input('Enter Name: ').split()
for name in what_to_look:
if name in title:
post_id = post_ids[title.index(name)]
print('Found', post_id)
else:
print('Not found')
输出:
Enter Name: james tom
Found 5
Found 6
Enter Name: tom jerry
Found 5
Not found
评论
1赞
hc_dev
1/7/2023
@LegendCoder 什么是“BRO” - 您还可以按名字称呼人们并感谢他们的帮助。对于“文本列表的输入”,您可以阅读您得到的所有答案 - 考虑投赞成票说“谢谢”。
0赞
Arifa Chan
1/7/2023
@LegendCoder是文本列表。您可以打印它。 无效。如果你想按字符检查所有内容,你可以使用what_to_look
['james', 'tom'].split()
list(what_to_look)
0赞
Arifa Chan
1/7/2023
对于每行 1 个或从文本文件中读取,您可以在新问题中提出您想要实现的信息的详细信息。
0赞
Arifa Chan
1/7/2023
@LegendCoder已修复...你可以试试 James Kim = 5, 9
1赞
hc_dev
1/7/2023
#5
以下是 IdeOne 上的演示,可以尝试:
titles = ['james','tom','kim']
locations = [5,6,9]
find_str = input('Find Names (separated by space): ')
terms = find_str.split() # split entered string by delimiter space into a list
print('Searching for terms:', terms)
for t in terms: # loop through each given name and search it in titles
if t.lower() in titles: # compare lower-case, if found inside titles
i = titles.index(t.lower()) # find position which is index for other list
loc = locations[i] # use found position to get location number or URL
print("Found given term:", t, "on index:", i, " has location:", loc)
我的输入(用空格分隔的 3 个术语):
James t. kirk
控制台输出(包括输入的行):
Find Names (separated by space): James t. kirk
Searching for terms: ['James', 't.', 'kirk']
Found given term: James on index: 0 has location: 5
评论
what_to_look
title
.split()
input().split()