使用 .insert 方法在二维列表中添加子列表

Using the .insert method to add sub-list in 2D list

我在下面的列表中尝试使用 .insert 方法在列表中的特定位置添加 [2.5, "peppers"]:

pizza_and_prices =  [
  [2, "pepperoni"],
  [6, "pineapple"],
  [1, "cheese"],
  [3, "sausage"],
  [2, "olives"],
  [7, "anchovies"],
  [2, "mushrooms"]
]

#sort pizza list
pizza_and_prices.sort()

#drawing from 2d list
cheapest_pizza = pizza_and_prices[0]
priciest_pizza = pizza_and_prices[-1]

#purchases
pizza_and_prices.pop()
pizza_and_prices[4].insert([2.5, "peppers"])

因为 .sort() 方法默认按子列表中的第一个顺序对二维列表进行排序。输出应该是:

[[1, 'cheese'], [2, 'mushrooms'], [2, 'olives'], [2, 'pepperoni'], [3, 'sausage'], [6, 'pineapple']]

现在假设我正在尝试使用 .insert 方法将 [2.5, "X"] 添加到名为 "pizza_and_prices" 的二维列表中(同时按价格顺序排列)。我该怎么做呢?

.插入方法

语法

list.insert(position,element)

您可以遍历列表以找出放置给定元素的索引:

ind = 0
for i in pizza_and_prices:
   if i[0] > 2.5:
      break
   else:
      ind += 1
pizza_and_prices.insert(ind,[2.5,"y"])

您必须为 insert(arg1, arg2) 函数提供 2 个参数。 arg1 是要在其中添加内容的索引,而 arg2 是要在 arg1 索引处添加的内容。请记住,存储在和之后的数据的索引将增加 1。

您正在寻找的潜在解决方案是

pizza_and_prices =  [
  [2, "pepperoni"],
  [6, "pineapple"],
  [1, "cheese"],
  [3, "sausage"],
  [2, "olives"],
  [7, "anchovies"],
  [2, "mushrooms"]
]

#sort pizza list
pizza_and_prices.sort()

#drawing from 2d list
cheapest_pizza = pizza_and_prices[0]
priciest_pizza = pizza_and_prices[-1]
#count prices - task 3
num_two_dollar_slices = prices.count(2)

#purchases
pizza_and_prices.pop()
pizza_and_prices.insert(4, [2.5, "peppers"])