为了账号安全,请及时绑定邮箱和手机立即绑定

如何一起使用两个列表?

如何一起使用两个列表?

HUX布斯 2024-01-16 15:44:50
我有 2 个清单;材料及其相应的数量。例如,列表是:words=["banana","apple","orange","bike","car"]和numbers=[1,5,2,5,1]。通过这些列表,我如何确定哪一个列表中的项目数量最少,哪一个列表中的项目数量最多。我不知道从哪里开始谢谢!
查看完整描述

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

>>> 


查看完整回答
反对 回复 2024-01-16
?
DIEA

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'


查看完整回答
反对 回复 2024-01-16
?
白衣染霜花

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])


查看完整回答
反对 回复 2024-01-16
?
慕森卡

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


查看完整回答
反对 回复 2024-01-16
?
青春有我

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}


查看完整回答
反对 回复 2024-01-16
  • 5 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信