【发布时间】:2019-01-12 13:13:40
【问题描述】:
对于 2D 列表 [["bacon", "banana"], ["ham", "salami", "cheese"]] 我想迭代为 "bacon",然后是 "banana",然后是 "ham "等。
sandwiches = [["bacon", "banana"], ["ham", "salami", "cheese"]]
preferences = ["bacon", 5, "ham", -2, "salami", 1]
在三明治数组中,有 2 个三明治,培根+香蕉和火腿+意大利腊肠+奶酪。我想通过做这样的事情来知道每个三明治的分数(不起作用,但显示了我想做的事情):
sandwichscores = [0 for i in sandwiches]
sandwichscores = [+preferences[preferences.index(j)+1] for j in i in sandwiches if
j in preferences]
当然对于 j in i in 三明治是行不通的。我试过弄乱fors和ins的顺序,但没有得到任何结果。这怎么可能?
例如,我想要的输出是:
sandwichscores = [5, -1]
因为成分在第一个三明治中的综合得分为 5,在第二个三明治中为 -1。不在偏好中的成分会被忽略。
【问题讨论】:
-
您最好根据自己的喜好使用字典:
preferences = { 'bacon' : 5, 'ham' : -2 } -
不清楚你在问什么。在迭代中“培根”和“香蕉”之后是什么?是“火腿”“意大利腊肠”“奶酪”还是别的什么?也不清楚你想要什么输出。
-
顺序无关紧要,只要每个元素迭代一次即可。
-
其实很抱歉,我希望能澄清我想要的订单的歧义。
-
明确地说,您要生成培根/火腿、培根/意大利腊肠、培根/奶酪、香蕉/火腿、香蕉/意大利腊肠、香蕉/奶酪的分数吗?
标签: python arrays list for-loop multidimensional-array