5 回答
TA贡献1863条经验 获得超2个赞
from operator import itemgetter
words = ["banana", "apple", "orange", "bike", "car"]
numbers = [1, 5, 2, 5, 1]
min_item = min(zip(words, numbers), key=itemgetter(1))
max_item = max(zip(words, numbers), key=itemgetter(1))
print("The min item was {} with a count of {}".format(*min_item))
print("The max item was {} with a count of {}".format(*max_item))
输出:
The min item was banana with a count of 1
The max item was apple with a count of 5
>>>
TA贡献1820条经验 获得超2个赞
用于zip匹配相应的单词和数字:
>>> words = ["banana", "apple", "orange", "bike", "car"]
>>> numbers = [1, 5, 2, 5, 1]
>>> list(zip(words, numbers))
[('banana', 1), ('apple', 5), ('orange', 2), ('bike', 5), ('car', 1)]
如果将zip它们(number, word)配对,则可以直接在这些对上使用min和max来获得最小/最大组合:
>>> min(zip(numbers, words))
(1, 'banana')
>>> max(zip(numbers, words))
(5, 'bike')
dict或者从对中创建一个(word, number)并在其上使用min和max。这只会给你单词,但你可以从字典中获取相应的数字:
>>> d = dict(zip(words, numbers))
>>> d
{'apple': 5, 'banana': 1, 'bike': 5, 'car': 1, 'orange': 2}
>>> min(d, key=d.get)
'banana'
>>> max(d, key=d.get)
'apple'
TA贡献1796条经验 获得超10个赞
保持简单:如果您只想要一件最少和一件最多的物品
words=["banana","apple","orange","bike","car"]
numbers=[1,5,2,5,1]
# get least and most amounts using max and min
least_amount = min(numbers)
most_amount=max(numbers)
# get fruit with least amount using index
index_of_least_amount = numbers.index(least_amount)
index_of_most_amount = numbers.index(most_amount)
# fruit with least amount
print(words[index_of_least_amount])
# fruit with most amount
print(words[index_of_most_amount])
TA贡献1806条经验 获得超8个赞
您应该使用字典或元组列表来执行以下操作:
words=["banana","apple","orange","bike","car"]
numbers=[1,5,2,5,1]
dicti = {}
for i in range(len(words)):
dicti[words[i]] = numbers[i]
print(dicti["banana"]) #1
结果字典
{'banana': 1, 'apple': 5, 'orange': 2, 'bike': 5, 'car': 1}
这是如何使用元组列表获取其中的最大值和最小值的方法
words=["banana","apple","orange","bike","car"]
numbers=[1,5,2,5,1]
numMax = max(numbers)
numMin = min(numbers)
print([x for x,y in zip(words, numbers) if y == numMax ]) #maxes
print([x for x,y in zip(words, numbers) if y == numMin ]) #mins
TA贡献1784条经验 获得超8个赞
words = ["banana","apple","orange","bike","car"]
numbers = [1, 5, 2, 5, 1]
# Make a dict, is easier
adict = {k:v for k,v in zip(words, numbers)}
# Get maximums and minimums
min_value = min(adict.values())
max_value = max(adict.values())
# Here are the results, both material and values. You have also those which are tied
min_materials = {k,v for k,v in adict if v == min_value}
max_materials = {k,v for k,v in adict if v == max_value}
添加回答
举报