-3
A
回答
1
- 使用
for
循环来迭代列表中的项目obj
。 - 使用
if i in x
检查列表obj
中的项目是否存在于字符串x
中。 - 根据步骤2的状态在
result
字典中添加键值。 - 打印结果字典。
例如字符串的
>>> obj = ['<','>','=','<=']
>>> x ='a<=b'
>>> result = {}
>>> for i in obj:
... if i in x:
... result[i]="Present in string."
... else:
... result[i]="Not in string"
...
>>> import pprint
>>> pprint.pprint(result)
{'<': 'Present in string.',
'<=': 'Present in string.',
'=': 'Present in string.',
'>': 'Not in string'}
>>>
更多关于in
和__contains__()
方法: -
>>> "a" in "abcde"
True
>>> "z" in "abcde"
False
>>> "abcde".__contains__("a")
True
>>> "abcde".__contains__("z")
False
1
运营商<=
比<
比<<<
不同有所不同。因此,您需要将构成运算符的多个字符与周围的非运算符字符分开。
在大多数情况下,您可以使用parser来做到这一点。
在简单的情况下,最好的办法是用正则表达式:
tests='''\
a<=b
a<b
a>b
a<<<b
a=b
a==b
a>=b'''
import re
ops=['<','>','=','<=']
pat='([{}]+)'.format(''.join({c for op in ops for c in op}))
for test in tests.splitlines():
m=re.search(pat, test)
if m:
print 'Line: "{}", Operator: "{}", in ops: {}'.format(
test, m.group(0), m.group(0) in ops)
它打印:
Line: "a<=b", Operator "<=", in ops: True
Line: "a<b", Operator "<", in ops: True
Line: "a>b", Operator ">", in ops: True
Line: "a<<<b", Operator "<<<", in ops: False
Line: "a=b", Operator "=", in ops: True
Line: "a==b", Operator "==", in ops: False
Line: "a>=b", Operator ">=", in ops: False
如果你不关心<
从<=
是不同的,你可以测试每个字符串与列表any
:
>>> any(op in 'a<=b' for op in ['<','>','=','<='])
True
但是这并不区分<
和<=
这是不同的运营商。
相关问题
- 1. 数学运算符
- 2. 如何计算数字和数学运算符的数组(或字符串)
- 3. SQL:字符串转换为数学运算符
- 4. 用数学运算符评估C#字符串
- 5. 如何将字符串“*”或“\”用作数学运算符?
- 6. 数学运算符和Java数字
- 7. 数学运算符参数
- 8. %python字符串运算符
- 9. 字符串运算符C++
- 10. 无法找到数字文字运算符'运算符'“x0'
- 11. Android数学运算符
- 12. 在字符串中查找字符串
- 13. 查找字符串中的字符串
- 14. 如何使用jquery从字符串中执行数学运算
- 15. MySQL对字符串执行数学运算?
- 16. 将字符串转换为数学运算(例如:“+ 2.days”)
- 17. Swift - 解决字符串中的数学运算
- 18. MySQL的执行字符串作为数学运算
- 19. 查找字符串
- 20. 查找字符串
- 21. 查找字符串
- 22. 查找字符串
- 23. 查找字符串
- 24. 查找字符串
- 25. 查找字符串
- 26. 查找字符串的二维数组中的字符串数
- 27. 如何可以解析数学运算符从字符串在C#
- 28. 用字符串格式运算符C++字符串替换
- 29. nameof()运算符为静态字符串
- 30. C++ 11字符串赋值运算符
为什么downvote? – 2015-02-11 19:11:04
现在一切都很有意义,这个问题*完全*值得回答!对不起,请收到我诚挚的歉意,形式为upvote。 – vaultah 2015-02-11 19:13:04
这个讽刺很强。 – HavelTheGreat 2015-02-11 19:13:58