我面临的问题是我似乎无法识别数组列表中的选定项目。这有点复杂。基本上,我想循环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)
答案 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个条目分别属于stop
(Item
,ItemName
,ItemNum
和description
),因此我们一直想找到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