在 Python 中访问字典中列表中的项目

Python 中要访问字典中列表中的项目:

  1. 使用括号表示法访问字典中的特定键。
  2. 使用方括号表示法访问列表中的索引。
  3. 该表达式返回指定索引处的列表项。
my_dict = {
    'names': ['alice', 'jiyik', 'carl'],
    'tasks': ['develop', 'test', 'ship'],
    'ids': [1, 2, 3],
}

print(my_dict['names'][0])  # 👉️ alice
print(my_dict['names'][1])  # 👉️ jiyik

print(my_dict['tasks'][-1])  # 👉️ ship

for key, value in my_dict.items():
    print(key, value)

    # 👇️ check if value in list
    if 'jiyik' in value:
        print(key, value)

第一组方括号用于访问字典中的特定键并返回相应的列表值。

my_dict = {
    'names': ['alice', 'jiyik', 'carl'],
    'tasks': ['develop', 'test', 'ship'],
    'ids': [1, 2, 3],
}

print(my_dict['names']) # 👉️ ['alice', 'jiyik', 'carl']
print(my_dict['tasks']) # 👉️ ['develop', 'test', 'ship']

print(my_dict['names'][0])  # 👉️ alice
print(my_dict['names'][1])  # 👉️ jiyik

print(my_dict['tasks'][-1])  # 👉️ ship

第二组方括号用于访问列表中的项目。

我们还可以使用列表切片来访问列表中的项目。

my_dict = {
    'names': ['alice', 'jiyik', 'carl'],
    'tasks': ['develop', 'test', 'ship'],
    'ids': [1, 2, 3],
}

print(my_dict['names'][0:2])  # 👉️ ['alice', 'jiyik']

列表切片的语法是 my_list[start:stop:step]

start 索引是包含的,stop 索引是排他的(直到,但不包括)。

Python 索引是从零开始的,因此列表中的第一项的索引为 0,最后一项的索引为 -1 或 len(my_list) - 1

如果我们需要检查某个特定值是否包含在任何列表中,请使用 for 循环遍历字典的项目。

my_dict = {
    'names': ['alice', 'jiyik', 'carl'],
    'tasks': ['develop', 'test', 'ship'],
    'ids': [1, 2, 3],
}


for key, value in my_dict.items():
    print(key, value)

    # 👇️ check if value in list
    if 'jiyik' in value:
        print(key, value)

dict.items 方法返回字典项((键,值)对)的新视图。

my_dict = {
    'names': ['alice', 'jiyik', 'carl'],
    'tasks': ['develop', 'test', 'ship'],
    'ids': [1, 2, 3],
}

# 👇️ dict_items([('names', ['alice', 'jiyik', 'carl']), ('tasks', ['develop', 'test', 'ship']), ('ids', [1, 2, 3])])
print(my_dict.items())

在每次迭代中,我们使用 in 运算符检查每个列表中是否包含一个值,并打印匹配的键和值。

in 运算符测试成员资格。 例如,如果 x 是 s 的成员,则 x in s 的计算结果为 True,否则计算结果为 False

x not in s 返回 x in s 的否定。

如果我们只需要在迭代时访问列表,请改用 dict.values() 方法。

my_dict = {
    'names': ['alice', 'jiyik', 'carl'],
    'tasks': ['develop', 'test', 'ship'],
    'ids': [1, 2, 3],
}


for value in my_dict.values():

    # 👇️ check if value in list
    if 'bobbyhadz' in value:
        # 👇️ ['alice', 'jiyik', 'carl']
        print(value)

dict.values 方法返回字典值的新视图。

my_dict = {
    'names': ['alice', 'jiyik', 'carl'],
    'tasks': ['develop', 'test', 'ship'],
    'ids': [1, 2, 3],
}

# 👇️ dict_values([['alice', 'jiyik', 'carl'], ['develop', 'test', 'ship'], [1, 2, 3]])
print(my_dict.values())