尝试查找与数组中的项目对应的项目

时间:2019-02-11 08:45:31

标签: python arrays

我面临的问题是我似乎无法识别数组列表中的选定项目。这有点复杂。基本上,我想循环4次,每次循环代码时,都将项目,项目编号,其描述和底价附加到一个数组中。但是,由于其循环4次数组Finallist似乎已将所有4个项目和变量附加到其列表中。这样做会使我的代码最后3行。 (即Item = input(“请输入所需的项目”))将不起作用,因为用户输入的项目将不可避免地打印4个项目及其变量的整个数组列表。但是,我只希望变量在一个循环中。为了使您更清楚,例如,如果程序循环一次,则该项目为cat,其项目号为123456,其描述为“ cats are cute”,其底价为1000,但是,如果我要循环4次,程序将必须打印所有4个项目和变量,而我只希望单个循环的项目及其变量,所以我只希望该项目为cat,其项目号为123456,其描述为“猫很可爱”,底价是1000,没有其他4个条目。我知道这个解释可能会让人感到困惑,但希望它对您来说更清楚。谢谢!

ItemNum = []
description = []
ReservePrice = []
item = []
NumOfBids = 0
Finallist = []

for count in range (0,4):
  user3 = input("please enter your item ")
  item.append(user3)
  user = input("please input your item number. ")
  ItemNum.append(user)
  user1 = input("Please enter your description for the product ")
  description.append(user1)
  user2 = input("Please enter your reserve price for the thing ")
  ReservePrice.append(user2)
  Finallist.extend(item)
  Finallist.extend(ItemNum)
  Finallist.extend(description)
  Finallist.extend(ReservePrice)

Item = input("please enter your desired item")
if Item == Finallist:
  print(Finallist)

2 个答案:

答案 0 :(得分:2)

尝试Day[] days = Day.values(); for(Day day: days) { System.out.println("MONDAY".equalsIgnoreCase(day.name())); }。  这将检查if Item in Finallist:值是否在列表Item内的对象。

此外,您为什么Finallist .extend()? Asimple FinalList可以解决问题,并避免数据出现的重复。

编辑:

在这里修改您的代码:

append()

编辑:

ItemNum = [] description = [] ReservePrice = [] item = [] NumOfBids = 0 Finallist = [] def print_item(item_list, item): start_index = item_list.index(item) print(item_list[start_index:start_index+4]) for count in range (0,4): user3 = input("please enter your item ") item.append(user3) user = input("please input your item number. ") ItemNum.append(user) user1 = input("Please enter your description for the product ") description.append(user1) user2 = input("Please enter your reserve price for the thing ") ReservePrice.append(user2) Finallist.append(user3) Finallist.append(user) Finallist.append(user1) Finallist.append(user2) Item = input("please enter your desired item") if Item in Finallist: print_item(Finallist, Item) 函数的说明。

该功能利用了所谓的列表切片。

如果您有一个像get_item()这样的列表 我们可以通过example_list = ["a", "b", "c", "d", "e", "f"]

访问["c", "d"]之类的“子列表”

切片的工作方式类似于example_list[2:4],它返回一个列表,该列表由indees a_list[start:stop]a_list中的start的所有条目组成,包括索引为stop的元素但排除索引为start的项目。

+4的把戏:

由于您有4个条目分别属于stopItemItemNameItemNumdescription),因此我们一直想找到intex ReservePrice中的值,并获得它加上接下来的三个条目,但不是第四。 这是通过调用ItemName来完成的,它检索.index(item)的索引。 因此,item返回以item_list[start_index:start_index+4]开始并以item结尾但不包含下一个ReservePrice的子列表。

进一步阅读:About Slicing

答案 1 :(得分:0)

我从代码段中删除了一些不必要的内容。

Finallist = []

for count in range (0,4):
    user1 = input("please enter your item ")
    user2 = input("please input your item number. ")
    user3 = input("Please enter your description for the product ")
    user4 = input("Please enter your reserve price for the thing ")
    Finallist.append(user1)
    Finallist.append(user2)
    Finallist.append(user3)
    Finallist.append(user4)

Item = input("please enter your desired item")
# check only every 4th item in the list
# if we found a match, print it and the next 3
for i range(0, len(Finallist), 4)
    if Item == Finallist[i]:
        print(Finallist[i], Finallist[i+1], Finallist[i+2], Finallist[i+3])
        break