我面临的问题是,我似乎无法识别数组列表中的选定项。这有点复杂。基本上,我想要循环4次,每次循环遍历代码,将商品、商品编号、商品描述和保留价添加到一个单独的数组中。然而,由于它循环了4次,数组Finallist似乎已经将所有4个项和变量都附加到了它的列表中。这样做,导致我的代码在最后3行。(即Item =input(“请输入您想要的项目”)将不起作用,因为用户输入的项目将不可避免地打印4个项目及其变量的整个数组列表。然而,我只想把变量放在一个循环中。为了让你更清楚,例如,如果程序循环一次,项目将是猫,其项目编号将是123456,其描述将是“猫很可爱”,其保留价为1000,然而,如果我循环4次,程序将不得不打印所有4个项目和变量,而我只需要单个循环的项目及其变量。所以我只希望物品是猫,它的物品编号是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)
发布于 2019-02-11 17:15:53
试试if Item in Finallist:
。这将检查在列表Finallist
内是否有一个值为Item
的对象。
另外,为什么你要.extend()
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"]
这样的列表,我们可以通过example_list[2:4]
访问像["c", "d"]
这样的“子列表”
切片的工作原理类似于a_list[start:stop]
,它返回一个列表,其中包含start
和stop
中a_list
的所有条目,其中包括索引为start
的元素,但不包括索引为stop
的条目。
+4的诀窍:
由于您有4个条目属于一个Item
(ItemName
、ItemNum
、description
和ReservePrice
),因此我们总是希望找到ItemName
的intex,并将其加上接下来的3个条目,而不是第4个条目。这是通过调用.index(item)
来完成的,它检索item
的索引。因此,item_list[start_index:start_index+4]
返回以item
开头并以其ReservePrice
结尾的子列表,但不包括下一个ItemName
。
进一步阅读:About Slicing
发布于 2019-02-11 17:41:34
我从代码片段中去掉了一些不必要的东西。
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
https://stackoverflow.com/questions/54626720
复制相似问题