我有一份清单:
A = [['andy', 'dear', 'boy', 'tobe', 'todo'],
['where', 'what', 'when', 'how'],
['korea', 'japan', 'china', 'usa'],
['tweet', 'where', 'why', 'how']]
Run Code Online (Sandbox Code Playgroud)
我有三个问题要准确:
我熟悉从列表中检索与特定关键字匹配的所有元素的概念,但在检索与特定关键字匹配的所有列表时,它会令人困惑...
任何猜测?提前致谢.
简单直接
elem = 'why'
index_li = []
for idx, item in enumerate(A):
for word in item:
if word.startswith(elem):
index_li.append(idx)
break
print index_li
Run Code Online (Sandbox Code Playgroud)
例
>>> elem = 'wh'
... index_li = []
... for idx, item in enumerate(A):
... for word in item:
... if word.startswith(elem):
... print word, item
... index_li.append(idx)
... break
... print index_li
where ['where', 'what', 'when', 'how']
where ['tweet', 'where', 'why', 'how']
[1, 3]
Run Code Online (Sandbox Code Playgroud)
首先:
>>> for l in A:
... if 'why' in l:
... print l
...
['tweet', 'where', 'why', 'how']
Run Code Online (Sandbox Code Playgroud)
对于第二个:(任何地方)
>>> for l in A:
... for i in l:
... if 'wh' in i:
... print l
... break
...
['where', 'what', 'when', 'how']
['tweet', 'where', 'why', 'how']
Run Code Online (Sandbox Code Playgroud)
要在开始时进行测试,请尝试以下操作:(使用来自@Harido的startswith())
>>> for l in A:
... for i in l:
... if i.startswith('wh'):
... print l
... break
...
['where', 'what', 'when', 'how']
['tweet', 'where', 'why', 'how']
Run Code Online (Sandbox Code Playgroud)
对于第三个:
要查找索引,您可以A.index(l)在打印雄蕊之后使用方法,例如:
>>> for l in A:
... for i in l:
... if 'wh' in i:
... print l
... print A.index(l)
... break
...
['where', 'what', 'when', 'how']
1
['tweet', 'where', 'why', 'how']
3
Run Code Online (Sandbox Code Playgroud)
但请记住,我不太擅长 Python。有人可以给你更好的方法。(我正在编写类似 C 的代码,效果很差)我想分享这个链接:Guido van Rossum
编辑:
感谢@Jaime 向我推荐for k, l in enumerate(A):
>>> for k, l in enumerate(A):
... for i in l:
... if 'wh' in i:
... print l
... print "index =", k
... break
...
['where', 'what', 'when', 'how']
index = 1
['tweet', 'where', 'why', 'how']
index = 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |