gpt4 book ai didi

python - 通过其中一个值在打乱的子列表列表中查找值

转载 作者:行者123 更新时间:2023-11-28 19:08:40 24 4
gpt4 key购买 nike

如果列表我有一个列表

items = [
["e",None,None],
["pork","pork.png","meat"],
["beef","b.png","meat"],
["cheese","c.png","not"],
]
items_list = ["e","beef","pork","beef"]
shuffle(items_list)

如何在没有索引的情况下打印子列表中的第二个或第三个值?

for i in items_list:
print ???

最佳答案

您可以将您的 items 子列表存储在字典中,由它们的第一个元素索引。

from random import shuffle

items = [
["e",None,None],
["pork","pork.png","meat"],
["beef","b.png","meat"],
["cheese","c.png","not"],
]

items_dict = {u[0]: u for u in items}

items_list = ["e","beef","pork","beef"]
shuffle(items_list)

for s in items_list:
print(s, items_dict[s])

输出

beef ['beef', 'b.png', 'meat']
e ['e', None, None]
beef ['beef', 'b.png', 'meat']
pork ['pork', 'pork.png', 'meat']

要打印第二个项目(即 PNG):

for s in items_list:
print(s, items_dict[s][1])

输出

e None
beef b.png
beef b.png
pork pork.png

这是相当有效的,因为没有创建新列表:items_dict 中的列表与 items 中的列表对象相同。因此,如果需要,您可以通过 itemsitems_dict 改变这些列表。

items_dict["cheese"].append("cheddar")
print(items[3])

items[0][2] = "something"
print(items_dict["e"])

输出

['cheese', 'c.png', 'not', 'cheddar']
['e', None, 'something']

不需要 items_dict,但替代方案是双 for 循环,它非常 如果 items 很大,效率低下。

for s in items_list:
for seq in items:
if seq[0] == s:
print(s, seq)
break

输出

beef ['beef', 'b.png', 'meat']
e ['e', None, None]
beef ['beef', 'b.png', 'meat']
pork ['pork', 'pork.png', 'meat']

关于python - 通过其中一个值在打乱的子列表列表中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43281957/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com