如何从列表中获取值+输入

时间:2016-09-08 20:29:36

标签: python list for-loop input

对于模糊的标题感到抱歉,但这是我的问题。 (我刚刚开始这项研究)

例如

list_1 = [a, b, c, d, e, f]

input_1 = input('question1')
input_2 = input('question2')

让我们说他们选择了

input_1  = b
input_2 =  f

我需要在两个选定的字母之间打印字母的东西。 所以你会得到

c
d
e

我尝试使用带有if语句的for语句,但它没有很好地解决。 我还需要检查input2是否在列表中比input1更进一步的东西。我试过

if input_2 > input_1:
     print('yey')
else:
     print('not recognized, automatically f')
     input_2 = list_1[-1]

抱歉初学者问题=(

6 个答案:

答案 0 :(得分:0)

您可能希望循环浏览列表并比较数字中的字符。

for i in range(len(list_1)):
    if list_1[i] > input_1 and list_1[i] < input_2:
        print list_1[i]

答案 1 :(得分:0)

if input_1 in list_1 and input_2 in list_1:
    print(list_1[list_1.index(input_1)+1:list_1.index(input_2)])
else:
    print('didn't find input_1 or input_2) 

此?

如果你需要在input_2之前或在input_1之后自动打印列表的其余部分,你可以添加if语句,如

if input_1 in list_1 and input_2 in list_1:
    print(list_1[list_1.index(input_1)+1:list_1.index(input_2)])
elif input_1 in list_1 and not input_2 in list_1:
    print(list_1[list_1.index(input_1)+1:])
elif not input_1 in list_1 and input_2 in list_1:
    print(list_1[0:list_1.index(input_2)])
else:
    print('didn't find input_1 or input_2) 

答案 2 :(得分:0)

input_1input_2是列表中的元素。

您可以在python中使用slice来获取输入元素之间的元素。

 index_1 = list_1.index(input_1)
 index_2 = list_l.index(input_2)
 new_list = list_1[index_1:index_2]
 print new_list

答案 3 :(得分:0)

您可能想使用list.index()方法,您可以找到文档here

在您的情况下,这看起来像

i1 = list_1.index(input_1)
i2 = list_1.index(input_2)

if i2 > i1:
    print('yey')

然后您可以使用切片和循环来打印子列表

sublist = list_1[i1:i2]
for c in sublist:
    print(c)

答案 4 :(得分:0)

您可以遍历列表并为每个输入取出索引,然后测试您想要的条件。像这样:

list1 = ['a', 'b', 'c', 'd', 'f']
input_1  = 'b'
input_2 =  'f'
input_1_index = -1
input_2_index = -1

for i in range(len(list1)):
    if list1[i] == input_1:
        input_1_index = i
    elif list1[i] == input_2:
        input_2_index = i

if input_1_index == -1 or input_2_index == -1 or input_1_index > input_2_index:
    print('error')

else:
    print(list1[(input_1_index+1):input_2_index])

答案 5 :(得分:0)

这是我正在尝试做的版本。确保字母表是整个字母列表,并且您可以检查用户输入是否是字母表中的字符串。

alphabet = ['a', 'b', 'c', 'd']

input_1 = str(input(""))
input_2 = str(input(""))

Input1Pos = alphabet.index(input_1)

Input2Pos = alphabet.index(input_2)

if (Input2Pos > Input1Pos):
    Input1Pos = Input1Pos + 1
    print alphabet[Input1Pos:Input2Pos]

elif (Input2Pos == Input1Pos):
print "There are no characters between these two inputs"
else:
    print "The second input was before the first input"