目录
TypeError: ‘in <string>’ requires string as left operand, not list
- TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是 LIST
- TypeError: ‘in <string > ‘ 需要字符串作为左操作数,而不是 INT
- 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
计算为,否则计算为。True
x
l
False
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
运算符将返回,否则。True
False
in
and运算符。 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
运算符返回,否则返回。True
False
请注意,左侧的值必须是字符串类型。
检查字符串中是否包含非字符串值
如果值是整数或任何其他类型,则必须使用类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()
函数将返回,否则返回。True
False
检查二维列表是否包含子列表
如果您有一个二维列表,您还可以使用此方法检查一个列表是否包含另一个列表。
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
否则返回。
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)
我们使用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
计算为,否则计算为。True
x
s
False
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
。
in
and运算符。 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
返回。True
False
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
符将返回,否则。True
False
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息:
- 检查字符串是否包含 Python 列表中的元素
- 在 Python 中检查 List 是否包含不区分大小写的字符串
- 检查 String 是否以 Python 中 List 中的任何元素开头
- 将逗号分隔的字符串转换为 Python 中的列表
- 将 List 的字符串表示形式转换为 Python 中的 List
- 在 Python 中使用通配符过滤字符串列表
- 在 Python 中获取列表中每个字符串的第一个字符
- 在 Python 中将整数列表加入字符串
- 从 Python 中的字符串列表中删除所有空字符串
- 从 Python 中的列表或字符串中删除换行符
- 从 Python 中的字符串列表中删除标点符号
- 如何从 Python 中的字符串列表中删除引号
- 从 Python 中的列表或字符串中删除方括号