将字符串与字符序列进行比较
Comparing a string to a sequence of chars
我有以下字符串
"long"
我有一个 chars
数组,其中某处包含序列 [..., [l],[o],[n],[g],...]
。有人可以帮我找到一种方法来比较 string
与 chars
和 return 的数组 True
或 False
而不必将数组合并为一个string
?
谢谢!
你可以这样做:
s = 'long'
lst = [['a'],['l'],['o'],['n'],['g'],['z']]
p = [[x] for x in s]
any([p==lst[i:i+len(p)] for i in range(0, len(lst)-len(p))])
Out[81]: True
评论中的问题:“如何获取第一个匹配项的索引?”
[j for j, i in enumerate(range(0, len(lst)-len(p))) if p==lst[i:i+len(p)]][0]
Out[83]: 1
我不会说你应该这样做,但你当然可以。
z = "long"
a = [letter for letter in z]
b = ['l', ' ', 'x', 4, 'l', 'o', 'n', 'g', 5]
for i, j in enumerate(b):
if a == b[i:i+len(a)]:
print('"{}" found at index {}'.format(z,i))
我们实际上分解了字符串,然后创建列表的切片以与分解后的字符串进行比较。
我有以下字符串
"long"
我有一个 chars
数组,其中某处包含序列 [..., [l],[o],[n],[g],...]
。有人可以帮我找到一种方法来比较 string
与 chars
和 return 的数组 True
或 False
而不必将数组合并为一个string
?
谢谢!
你可以这样做:
s = 'long'
lst = [['a'],['l'],['o'],['n'],['g'],['z']]
p = [[x] for x in s]
any([p==lst[i:i+len(p)] for i in range(0, len(lst)-len(p))])
Out[81]: True
评论中的问题:“如何获取第一个匹配项的索引?”
[j for j, i in enumerate(range(0, len(lst)-len(p))) if p==lst[i:i+len(p)]][0]
Out[83]: 1
我不会说你应该这样做,但你当然可以。
z = "long"
a = [letter for letter in z]
b = ['l', ' ', 'x', 4, 'l', 'o', 'n', 'g', 5]
for i, j in enumerate(b):
if a == b[i:i+len(a)]:
print('"{}" found at index {}'.format(z,i))
我们实际上分解了字符串,然后创建列表的切片以与分解后的字符串进行比较。