在使用元组列表并尝试打印特定部分的数据时,如何在python的for循环中进行迭代?
因此,我的计划目标是向每个人分发两种不同价值的物品 程序接收一个数字和元组列表。当我挑选第一件物品时,所有的人都跟着我 拣选的顺序是:第一个人一路拣到最后一个,然后再拣到最后一个,然后再向后拣到第一个 现在我正在努力理解如何使用for循环遍历这些元组并打印出我选择的两个项目。要计算出有多少人在实际尝试获取物品,可以将所有可用物品除以2。我对此也感到困惑 ex输入:在使用元组列表并尝试打印特定部分的数据时,如何在python的for循环中进行迭代?,python,loops,tuples,Python,Loops,Tuples,因此,我的计划目标是向每个人分发两种不同价值的物品 程序接收一个数字和元组列表。当我挑选第一件物品时,所有的人都跟着我 拣选的顺序是:第一个人一路拣到最后一个,然后再拣到最后一个,然后再向后拣到第一个 现在我正在努力理解如何使用for循环遍历这些元组并打印出我选择的两个项目。要计算出有多少人在实际尝试获取物品,可以将所有可用物品除以2。我对此也感到困惑 ex输入: (0, [('pizza', 12), ('chicken', 10),] ) 因此,在这个例子中,程序应该打印出:“比萨饼:12
(0, [('pizza', 12), ('chicken', 10),] )
因此,在这个例子中,程序应该打印出:“比萨饼:12只鸡:10”以确保我正确回答了问题:
- 有n个项目和n/2个人
- 列表中的第一个人获得最佳(最高值)和最差(最低值)项。第二个人得到第二好的项目和第二差的项目,等等
- 列表中有k个人在你后面,因此你处于n/2-k位置
- 您想知道列表中有哪两项
def which_items_do_i_get(people_after_me, items):
# Get items sorted by value
sorted_items = sorted(items, key=lambda x: -x[1])
# Determine number of people
number_of_people = len(items) // 2
assert len(items) % 2 == 0 # Must be an even number of items
assert people_after_me < number_of_people # Need more items
# Determine first and second item
first_item = sorted_items[number_of_people - people_after_me - 1]
second_item = sorted_items[number_of_people + people_after_me]
# Print them out
for item_name, item_value in first_item, second_item:
print '%s: %d' % (item_name, item_value)
def我得到哪些项目(人在我之后,项目):
#获取按值排序的项目
已排序的\项=已排序(项,项=λx:-x[1])
#确定人数
人数=len(项目)//2
assert len(items)%2==0#必须是偶数个项
在我之后断言人<人的数量#需要更多物品
#确定第一项和第二项
first_item=已排序的_items[人数\u人-人数\u后-1]
第二项=已排序的项[人数+我之后的人数]
#打印出来
对于项目名称,第一个项目中的项目值,第二个项目:
打印“%s:%d%”(项目名称,项目值)
是的,我们的目标显然是挑选最好的物品,所以你必须删除以前的人会拿走的物品。哦,我明白了。那就先按值排序吧。更新了解决方案。