TypeError: ‘in ‘ 需要字符串作为左操作数,而不是列表

目录

TypeError: ‘in <string>’ requires string as left operand, not list

  1. TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是 LIST
  2. TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是 INT
  3. TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是字典

TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是列表

Python“TypeError: ‘in <string > ‘ requires string as left operand, not list”发生在我们使用in带有列表左侧值和字符串右侧值的运算符时。

要解决该错误,请将列表移至运算符的右侧in

主程序
my_str = 'bobby' my_list = ['bobby', 'hadz', 'com'] # ⛔️ TypeError: 'in <string>' requires string as left operand, not list result = my_list in my_str

语句中的顺序不正确

我们in在左侧使用了一个列表,在右侧使用了一个字符串,这导致了错误。

in将列表移动到运算符的右侧

要解决该错误,请将列表移至运算符的右侧in

主程序
# ✅ Checking if a value is in a list my_str = 'bobby' my_list = ['bobby', 'hadz', 'com'] result = my_str in my_list print(result) # 👉️ True if my_str in my_list: # 👇️ this runs print('The string is in the list') else: print('The string is NOT in the list')

in 运算符测试成员资格。例如,如果是 的成员
,则
x in l计算为,否则计算为TruexlFalse

主程序
my_list = ['bobby', 'hadz', 'com'] print('bobby' in my_list) # 👉️ True print('another' in my_list) # 👉️ False

检查一个值是否不在列表中

如果您需要检查字符串是否不在列表中,请改用not in运算符。

主程序
my_list = ['bobby', 'hadz', 'com'] print('bobby' not in my_list) # 👉️ False print('another' not in my_list) # 👉️ True # --------------------------------------- if 'another' not in my_list: # 👇️ this runs print('The value is NOT in the List') else: print('The value is in the List')

x not in l返回 的否定x in l

换句话说,如果值不在列表中,not in运算符将返回,否则。TrueFalse

所有内置序列和集合类型都支持inand运算符。 not in

检查子字符串是否包含在字符串中

in运算符还可用于检查字符串是否包含子字符串。

主程序
a_str = 'bobbyhadz.com' substring = '.com' if substring in a_str: # 👇️ this runs print('The substring is contained in the string') else: print('The substring is NOT contained in the string')

与两个字符串一起使用时,如果子字符串包含在字符串中,则in运算符返回,否则返回。TrueFalse

请注意,左侧的值必须是字符串类型。

检查字符串中是否包含非字符串值

如果值是整数或任何其他类型,则必须使用类str()将其转换为字符串才能使用in运算符。

主程序
a_str = 'bobbyhadz.com123456' an_int = 123 # ✅ convert integer to string if str(an_int) in a_str: # 👇️ this runs print('The substring is contained in the string') else: print('The substring is NOT contained in the string')

我们使用该类str()将整数转换为字符串以便能够使用in运算符。

忽略大小写检查字符串是否包含在列表中

如果您需要以不区分大小写的方式检查字符串是否包含在列表中,请将字符串和列表项转换为小写。

主程序
my_list = ['bobby', 'hadz', 'com'] my_str = 'BOBBY' if my_str.lower() in (word.lower() for word in my_list): # 👇️ this runs print('The string is contained in the list') else: print('The string is not contained in the list')

如果字符串True以不区分大小写的方式包含在列表中,则表达式将返回,否则False返回。

检查子字符串是否包含在列表中

如果需要检查列表中是否包含子字符串,请使用该any()
函数。

主程序
my_list = ['bobby123', 'hadz456', 'com789'] my_str = 'bobby' if any(my_str in item for item in my_list): # 👇️ this runs print('The substring is contained in the list') else: print('The substring is NOT contained in the list') # ----------------------------------------------- print(any('bobby' in item for item in my_list)) # 👉️ True print(any('another' in item for item in my_list)) # 👉️ False

如果子字符串包含在列表中,则any()函数将返回,否则返回。TrueFalse

检查二维列表是否包含子列表

如果您有一个二维列表,您还可以使用此方法检查一个列表是否包含另一个列表。

主程序
my_list = [['bobby'], ['hadz'], ['com']] print(['hadz'] in my_list) # 👉️ True print(['bobby'] in my_list) # 👉️ True print(['another'] in my_list) # 👉️ False

True如果给定的子列表包含在列表中,则
表达式返回,
False否则返回。

  1. TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是 INT
  2. TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是字典

TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是 int

Python“TypeError: ‘in <string > ‘ requires string as left operand, not int”发生在我们将in运算符与整数和字符串一起使用时。

要解决该错误,请将整数括在引号中,例如'5' in my_str.

下面是错误如何发生的示例。

主程序
my_str = '13579' result = 13 in my_str # ⛔️ TypeError: 'in <string>' requires string as left operand, not int print(result)

在字符串中需要字符串作为左操作数而不是 int

我们使用in运算符来检查导致错误的字符串中是否包含整数。

in使用运算符时将整数用引号引起来

为了解决这个错误,我们必须将整数用引号引起来,使其成为一个字符串。

主程序
my_str = '13579' result = '13' in my_str print(result) # 👉️ True if '13' in my_str: # 👇️ this runs print('13 is contained in the string') else: print('13 is NOT contained in the string')
将整数用引号括起来可以解决错误,因为当右侧的值是字符串时,左侧的值也必须是字符串。

使用str()类将整数转换为字符串

如果将int存储在变量中,请str()在使用运算符之前使用该类将其转换为字符串
in

主程序
my_str = '13579' my_int = 13 result = str(my_int) in my_str print(result) # 👉️ True if str(my_int) in my_str: # 👇️ this runs print('13 is contained in the string') else: print('13 is NOT contained in the string')

该类str()可用于将对象(例如int)转换为字符串。

一旦左侧和右侧的值属于同一类型,错误就解决了。

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

主程序
my_str = 'num is 13579' print('5' in my_str) # 👉️ True print('0' in my_str) # 👉️ False

in运算符对子字符串是否包含在字符串中执行不区分大小写的测试。

以不区分大小写的方式检查字符串是否包含子串

如果您需要忽略大小写,请将两个字符串都转换为小写。

主程序
a_str = 'BOBBYHADZ.COM' substring = 'com' if substring.lower() in a_str.lower(): # 👇️ this runs print('The substring is contained in the string') else: print('The substring is NOT contained in the string')

str.lower方法返回字符串的副本,其中所有大小写字符都转换为小写

将两个字符串转换为相同的大小写允许进行不区分大小写的成员资格测试。

检查子字符串是否不包含在字符串中

如果您需要检查子字符串是否不在字符串中,请改用not in
运算符。

主程序
my_str = 'num is 13579' print('5' not in my_str) # 👉️ False print('0' not in my_str) # 👉️ True

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

所有内置序列和集合类型都支持inand运算符。 not in

请注意,空字符串始终被视为任何其他字符串的子字符串。

主程序
my_str = '13579' print('' in my_str) # 👉️ True

检查空字符串是否是任何其他字符串的子字符串将返回
True

TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是字典

“TypeError: ‘in <string > ‘ requires string as left operand, not dict”错误在您使用带有字典的运算符作为左侧值时出现。in

要解决该错误,请在检查键是否存在时在右侧指定字典。

主程序
my_dict = {'name': 'Bobby Hadz', 'age': 30} # ⛔️ TypeError: 'in <string>' requires string as left operand, not dict if my_dict in 'name': print('The key is contained in the dict')

代码示例导致错误,因为字典位于运算符的左侧in

要解决该错误,请将字典移动到运算符的右侧。

主程序
my_dict = {'name': 'Bobby Hadz', 'age': 30} if 'name' in my_dict: print('The key is contained in the dict') else: print('The key is NOT contained in the dict')
与字典一起使用时,in运算符会检查对象中是否存在指定的键dict

如果键存在于字典中,运算符将返回,
否则
in返回TrueFalse

主程序
my_dict = {'name': 'Bobby Hadz', 'age': 30} print('name' in my_dict) # 👉️ True print('another' in my_dict) # 👉️ False

检查一个键是否不在字典中

如果您需要检查某个键是否不在字典中,请使用not in运算符。

主程序
my_dict = {'name': 'Bobby Hadz', 'age': 30} if 'another' not in my_dict: # 👇️ this runs print('The key is NOT contained in the dict') else: print('The key is contained in the dict') # ---------------------------------------- print('name' not in my_dict) # 👉️ False print('another' not in my_dict) # 👉️ True

如果键不包含在字典中,运算not in符将返回,否则。TrueFalse

额外资源

您可以通过查看以下教程来了解有关相关主题的更多信息: