1
Name_list = [
    ['Name 1', 'Name 2', 'Name 3']
]

Name = 'Name 3'

if Name == 'any name in the list':
    print('Name is in the list')

如何检查“名称 3”是否在列表中?

当列表看起来像这样时:

    list_1 = [
    ['Name 1'],
    ['Name 2'],
    ['Name 3']
]
4

4 回答 4

2

在这两种情况下,使用列表推导展平您搜索的列表列表,从而将其转换为普通列表(in用于搜索name):

name = 'Name 3'

list_1 = [
    ['Name 1', 'Name 2', 'Name 3']
]

if name in [item for sublist in list_1 for item in sublist]:
    print('Name is in the list')

list_1 = [
    ['Name 1'],
    ['Name 2'],
    ['Name 3']
]

if name in [item for sublist in list_1 for item in sublist]:
    print('Name is in the list')

请注意,正如MisterMiyagi在评论中提到的那样,您也可以使用set comprehension

if name in {item for sublist in list_1 for item in sublist}:
    print('Name is in the list')

或者您可以使用生成器表达式

if name in (item for sublist in list_1 for item in sublist):
    print('Name is in the list')

在某些情况下,例如大型列表或具有许多重复项的列表,这些可能比列表理解更快和/或更节省内存。

也可以看看:

生成器表达式与列表推导

于 2021-08-31T16:39:58.030 回答
1
Name = ''
Name_list = []
Name_list_v2 = []
if len(Name_list)==1:
    Name_list_v2=Name_list[0]
elif len(Name_list)>1:
    for names in Name_list:
        Name_list_v2.append(names[0])
else:
    print("Input formatted incorrectly")
for names in Name_list_v2:
    if names == Name:
        print("Name is in the list.")
    else:
        print("Name is not in the list")

逐行描述发生的情况:

  • 第 1 行设置Name变量
  • 第 2 行是您输入名称列表的位置(您可以将其格式化为[['Name 1', 'Name 2', 'Name 3']]或者[['Name 1'], ['Name 2'], ['Name 3']](您不必使用三个变量)
  • 第 3 行创建,无论您选择哪种输入方式Name_list_v2,它最终都会被格式化['Name 1', 'Name 2', 'Name 3']
  • 第 4 行和第 5 行检查列表是否格式化为[['Name 1', Name 2', 'Name 3']],如果将其转换为['Name 1', 'Name 2', 'Name 3']
  • 第 6-8 行检查列表的格式是否为[['Name 1'], ['Name 2'], ['Name 3']],如果是,则将其更改为['Name 1', 'Name 2', 'Name 3']
  • 如果输入格式错误,第 9 行和第 10 行打印错误消息
  • 第 11-15 行检查您在第 1 行输入的名称是否在 中Names_list_v2,并打印响应。
于 2021-08-31T17:03:51.760 回答
1

利用

if Name in Name_list[0]:
    print(Name)

Name_list[0]是因为,您正在列表中创建一个列表。因此, Name_list 在其中包含一个列表。如果要访问 Name_list 中的列表,则必须使用列表索引运算符。

于 2021-08-31T16:29:36.600 回答
1

利用any

if any(Name in sublist for sublist in Name_list):
    print('Name is in the list')
于 2021-08-31T16:30:33.823 回答