Python字典副本

2024-09-30 14:15:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两张单子

list_a = [1, 1, 2, 2, 4, 5]
list_b = ['good', 'bad', 'worst', 'cheap', 'waste', 'waste1']

我正在尝试用list_b中的元素编写python脚本和映射元素,如果有人输入值1,所有相关的值都应该填充。例如,如果我输入1作为输入参数,输出应该是

good
bad

如果我输入2作为输入参数,输出应该是

worst
cheap

我试过python字典,但字典不允许重复键。有没有一种方法可以在Python中实现这一点?你知道吗


Tags: 方法脚本元素参数字典list单子bad
2条回答

您可以简单地从两个列表中创建字典。可能会省下你的打字时间。。。你知道吗

list_a = [1, 1, 2, 2, 4, 5]
list_b = ['good', 'bad', 'worst', 'cheap', 'waste', 'waste1']

d = {}
for x, y in zip(list_a, list_b):
  if d.get(x):
    d[x] += [y]
  else:
    d[x] = [y]

print(d[2])

一个罕见的^{}用例:

idx = get_index(...)  # Get index to check by whatever means

for x in itertools.compress(list_b, (idx == i for i in list_a)):
    print(x)

compress接受一个iterable值和一个iterable“truthy或falsy”值,当第二个iterable提供truthy成对值时,返回第一个iterable的项。因此在本例中,我们需要来自list_b的项,当list_a中的值与提供的索引匹配时,我们使用生成器表达式动态计算索引。你知道吗

请注意,对于重复查找,dict是更好的选择。简单使用:

lookup = {1: ['good', 'bad'], 2: ['worst', 'cheap'], 4: ['waste'], 5: ['waste1']}

将允许您根据需要有效地执行for x in lookup[idx]: print(x)(可能会捕获KeyError,以便在密钥不存在时忽略大小写,或者生成更友好的错误消息)。你知道吗

相关问题 更多 >

    热门问题